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"
 |