From 9be6f30a42a8737f7e853dc3333b627242a962ab Mon Sep 17 00:00:00 2001 From: baude Date: Fri, 17 Jan 2020 09:41:40 -0600 Subject: post-process swagger yaml for publish Signed-off-by: baude Signed-off-by: Chris Evich --- contrib/cirrus/build_swagger.sh | 17 ++++++++++++++ contrib/cirrus/upload_release_archive.sh | 40 ++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 15 deletions(-) create mode 100755 contrib/cirrus/build_swagger.sh (limited to 'contrib') diff --git a/contrib/cirrus/build_swagger.sh b/contrib/cirrus/build_swagger.sh new file mode 100755 index 000000000..0471f0c10 --- /dev/null +++ b/contrib/cirrus/build_swagger.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +source $(dirname $0)/lib.sh + +# Building this is a PITA, just grab binary for use in automation +# Ref: https://goswagger.io/install.html#static-binary +download_url=$(curl -s https://api.github.com/repos/go-swagger/go-swagger/releases/latest | \ + jq -r '.assets[] | select(.name | contains("'"$(uname | tr '[:upper:]' '[:lower:]')"'_amd64")) | .browser_download_url') +curl -o /usr/local/bin/swagger -L'#' "$download_url" +chmod +x /usr/local/bin/swagger + +cd $GOSRC +make swagger +echo "Preserving build details for later use." +mv -v release.txt actual_release.txt # Another 'make' during testing could overwrite it diff --git a/contrib/cirrus/upload_release_archive.sh b/contrib/cirrus/upload_release_archive.sh index eb7742375..2716c402c 100755 --- a/contrib/cirrus/upload_release_archive.sh +++ b/contrib/cirrus/upload_release_archive.sh @@ -9,6 +9,8 @@ req_env_var CI UPLDREL_IMAGE CIRRUS_BUILD_ID GOSRC RELEASE_GCPJSON RELEASE_GCPNA [[ "$CI" == "true" ]] || \ die 56 "$0 must be run under Cirrus-CI to function" +SWAGGER_FILEPATH="pkg/api/swagger.yaml" + # We store "releases" for each PR, mostly to validate the process is functional unset PR_OR_BRANCH BUCKET if [[ -n "$CIRRUS_PR" ]] @@ -62,7 +64,7 @@ echo "$RELEASE_GCPJSON" > "$TMPF" unset RELEASE_GCPJSON cd $GOSRC -for filename in $(ls -1 *.tar.gz *.zip *.msi) +for filename in $(ls -1 *.tar.gz *.zip *.msi $SWAGGER_FILEPATH) do unset EXT EXT=$(echo "$filename" | sed -r -e 's/.+\.(.+$)/\1/g') @@ -76,24 +78,32 @@ do EXT="tar.gz" fi - [[ "$OS_RELEASE_ID" == "ubuntu" ]] || \ - chcon -t container_file_t "$filename" - # Form the generic "latest" file for this branch or pr - TO_PREFIX="${RELEASE_BASENAME}-latest-${PR_OR_BRANCH}-${RELEASE_DIST}" - # Form the fully-versioned filename for historical sake - ALSO_PREFIX="${RELEASE_BASENAME}-${RELEASE_VERSION}-${PR_OR_BRANCH}-${RELEASE_DIST}" - TO_SUFFIX="${RELEASE_ARCH}.${EXT}" - if [[ "$RELEASE_DIST" == "windows" ]] || [[ "$RELEASE_DIST" == "darwin" ]] + if [[ $filename == $SWAGGER_FILEPATH ]] then - TO_FILENAME="${TO_PREFIX}-${TO_SUFFIX}" - ALSO_FILENAME="${ALSO_PREFIX}-${TO_SUFFIX}" + # Support other tools referencing branch and/or version-specific refs. + TO_FILENAME="swagger-${RELEASE_VERSION}-${PR_OR_BRANCH}.yaml" + # For doc. ref. this must always be a static filename, e.g. swagger-latest-master.yaml + ALSO_FILENAME="swagger-latest-${PR_OR_BRANCH}.yaml" else - TO_FILENAME="${TO_PREFIX}-${RELEASE_DIST_VER}-${TO_SUFFIX}" - ALSO_FILENAME="${ALSO_PREFIX}-${TO_SUFFIX}" + # Form the generic "latest" file for this branch or pr + TO_PREFIX="${RELEASE_BASENAME}-latest-${PR_OR_BRANCH}-${RELEASE_DIST}" + # Form the fully-versioned filename for historical sake + ALSO_PREFIX="${RELEASE_BASENAME}-${RELEASE_VERSION}-${PR_OR_BRANCH}-${RELEASE_DIST}" + TO_SUFFIX="${RELEASE_ARCH}.${EXT}" + if [[ "$RELEASE_DIST" == "windows" ]] || [[ "$RELEASE_DIST" == "darwin" ]] + then + TO_FILENAME="${TO_PREFIX}-${TO_SUFFIX}" + ALSO_FILENAME="${ALSO_PREFIX}-${TO_SUFFIX}" + else + TO_FILENAME="${TO_PREFIX}-${RELEASE_DIST_VER}-${TO_SUFFIX}" + ALSO_FILENAME="${ALSO_PREFIX}-${TO_SUFFIX}" + fi fi + [[ "$OS_RELEASE_ID" == "ubuntu" ]] || \ + chcon -t container_file_t "$filename" + echo "Running podman ... $UPLDREL_IMAGE for $filename -> $TO_FILENAME" - echo "Warning: upload failures are completely ignored, avoiding any needless holdup of PRs." podman run -i --rm \ -e "GCPNAME=$RELEASE_GCPNAME" \ -e "GCPPROJECT=$RELEASE_GCPROJECT" \ @@ -105,5 +115,5 @@ do -e "BUCKET=$BUCKET" \ -v "$TMPF:$TMPF:ro" \ -v "$(realpath $GOSRC/$filename):/tmp/$filename:ro" \ - $UPLDREL_IMAGE || true + $UPLDREL_IMAGE done -- cgit v1.2.3-54-g00ecf