mirror of
https://github.com/containers/podman.git
synced 2025-08-06 03:19:52 +08:00

The initial implementation was far more complicated than necessary. Strip out the complexities in favor of a simpler and more direct approach. Signed-off-by: Chris Evich <cevich@redhat.com>
63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
source /usr/local/bin/lib_entrypoint.sh
|
|
|
|
req_env_var GCPJSON_FILEPATH GCPNAME GCPPROJECT REL_ARC_FILEPATH PR_OR_BRANCH BUCKET
|
|
|
|
[[ -r "$REL_ARC_FILEPATH" ]] || \
|
|
die 2 ERROR Cannot read release archive file: "$REL_ARC_FILEPATH"
|
|
|
|
[[ -r "$GCPJSON_FILEPATH" ]] || \
|
|
die 3 ERROR Cannot read GCP credentials file: "$GCPJSON_FILEPATH"
|
|
|
|
cd $TMPDIR
|
|
echo "Attempting to extract release.txt from tar or zip $REL_ARC_FILEPATH"
|
|
unset SFX
|
|
if tar xzf "$REL_ARC_FILEPATH" "./release.txt"
|
|
then
|
|
echo "It's a tarball"
|
|
SFX="tar.gz"
|
|
elif unzip "$REL_ARC_FILEPATH" release.txt
|
|
then
|
|
echo "It's a zip"
|
|
SFX="zip"
|
|
else
|
|
die 5 ERROR Could not extract release.txt from $REL_ARC_FILEPATH
|
|
fi
|
|
|
|
echo "Parsing release.txt contents"
|
|
RELEASETXT=$(<release.txt)
|
|
cd -
|
|
[[ -n "$RELEASETXT" ]] || \
|
|
die 3 ERROR Could not obtain metadata from release.txt in $REL_ARC_FILEPATH
|
|
|
|
RELEASE_INFO=$(echo "$RELEASETXT" | grep -m 1 'X-RELEASE-INFO:' | sed -r -e 's/X-RELEASE-INFO:\s*(.+)/\1/')
|
|
if [[ "$?" -ne "0" ]] || [[ -z "$RELEASE_INFO" ]]
|
|
then
|
|
die 4 ERROR Metadata is empty or invalid: '$RELEASETXT'
|
|
fi
|
|
|
|
# e.g. libpod v1.3.1-166-g60df124e fedora 29 amd64
|
|
# or libpod v1.3.1-166-g60df124e amd64
|
|
FIELDS="RELEASE_BASENAME RELEASE_VERSION RELEASE_DIST RELEASE_DIST_VER RELEASE_ARCH"
|
|
read $FIELDS <<< $RELEASE_INFO
|
|
for f in $FIELDS
|
|
do
|
|
[[ -n "${!f}" ]] || \
|
|
die 5 ERROR Expecting $f to be non-empty in metadata: '$RELEASE_INFO'
|
|
done
|
|
|
|
gcloud_init "$GCPJSON_FILEPATH"
|
|
|
|
# Drop version number to enable "latest" representation
|
|
# (version available w/in zip-file comment)
|
|
RELEASE_ARCHIVE_NAME="${RELEASE_BASENAME}-${PR_OR_BRANCH}-${RELEASE_DIST}-${RELEASE_DIST_VER}-${RELEASE_ARCH}.${SFX}"
|
|
|
|
echo "Uploading archive as $RELEASE_ARCHIVE_NAME"
|
|
gsutil cp "$REL_ARC_FILEPATH" "gs://$BUCKET/$RELEASE_ARCHIVE_NAME"
|
|
|
|
echo "Release now available at:"
|
|
echo " https://storage.cloud.google.com/$BUCKET/$RELEASE_ARCHIVE_NAME"
|