blob: 45ea682748ba8aab8602a256185b37b9b534ecfc [file] [log] [blame]
#!/bin/bash
# Copyright 2023 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This script is used to pull a docker image's provenance and save it to a file.
DOCKER_IMAGE_URL=$1
OUTPUT_DIRECTORY=$2
# Getting the docker image provenance can be flaky, so retry up to 3 times.
MAX_ATTEMPTS=3
for attempt in $(seq 1 $MAX_ATTEMPTS)
do
echo "(Attempt $attempt) Obtaining provenance for $1"
gcloud artifacts docker images describe \
$DOCKER_IMAGE_URL --show-provenance --format json > $OUTPUT_DIRECTORY
COMMAND_RESULT=$?
if [[ $COMMAND_RESULT -eq 0 ]]
then
echo "Successfully obtained provenance and saved to $2"
break
else
echo "Failed to obtain provenance."
sleep 30
fi
done
if [[ $COMMAND_RESULT -ne 0 ]]
then
echo "Failed to download provenance." && exit $COMMAND_RESULT
fi