diff --git a/.github/workflows/push-build.yaml b/.github/workflows/push-build.yaml index f13aae106..f71990d45 100644 --- a/.github/workflows/push-build.yaml +++ b/.github/workflows/push-build.yaml @@ -3,6 +3,9 @@ on: push: branches: - master + - release-* + tags: + - v* defaults: run: @@ -37,11 +40,13 @@ jobs: aws-region: us-east-1 - name: unshallow - run: git fetch --prune --unshallow --tags + run: git fetch --prune --unshallow --tags --force # creating custom env var - name: set env - run: echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV + run: | + echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV + echo "GITHUB_REF"=${GITHUB_REF} >> $GITHUB_ENV - name: build and release env: @@ -49,4 +54,10 @@ jobs: BRANCH_NAME: ${{ env.BRANCH_NAME }} AWS_USR: ${{ secrets.AWS_USR }} AWS_PSW: ${{ secrets.AWS_PSW }} - run: tests/scripts/build-release.sh + GITHUB_REF: $ {{ env.GITHUB_REF }} + run: | + if [[ ${GITHUB_REF} =~ master|v ]]; then + tests/scripts/build-release.sh publish_and_promote + else + tests/scripts/build-release.sh publish + fi diff --git a/tests/scripts/build-release.sh b/tests/scripts/build-release.sh index 1fce213db..f44c0c1b3 100755 --- a/tests/scripts/build-release.sh +++ b/tests/scripts/build-release.sh @@ -5,6 +5,13 @@ set -ex # FUNCTIONS # ############# + +if [[ ${GITHUB_REF} =~ master ]]; then + CHANNEL=master +else + CHANNEL=release +fi + function build() { # set VERSION to a dummy value since Jenkins normally sets it for us. Do this to make Helm happy and not fail with "Error: Invalid Semantic Version" build/run make VERSION=0 build.all @@ -12,18 +19,21 @@ function build() { build/run make mod.check } -if [[ ${BRANCH_NAME} =~ release- ]]; then - build - build/run make -C build/release build BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=true GIT_API_TOKEN=${GIT_API_TOKEN} - git status & - git diff & - build/run make -C build/release publish BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=true AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} GIT_API_TOKEN=${GIT_API_TOKEN} -elif [[ ${BRANCH_NAME} =~ master|tag ]]; then +function publish_and_promote() { build build/run make -C build/release build BRANCH_NAME=${BRANCH_NAME} GIT_API_TOKEN=${GIT_API_TOKEN} git status & git diff & build/run make -C build/release publish BRANCH_NAME=${BRANCH_NAME} AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} GIT_API_TOKEN=${GIT_API_TOKEN} # automatically promote the master builds - build/run make -C build/release promote BRANCH_NAME=master CHANNEL=master AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} -fi + build/run make -C build/release promote BRANCH_NAME=${BRANCH_NAME} CHANNEL=${CHANNEL} AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} + +} + +function publish() { + build + build/run make -C build/release build BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=true GIT_API_TOKEN=${GIT_API_TOKEN} + git status & + git diff & + build/run make -C build/release publish BRANCH_NAME=${BRANCH_NAME} TAG_WITH_SUFFIX=true AWS_ACCESS_KEY_ID=${AWS_USR} AWS_SECRET_ACCESS_KEY=${AWS_PSW} GIT_API_TOKEN=${GIT_API_TOKEN} +}