From 1d5c9a4f9a8466173bcccf93a5f7d241ce79b4fa Mon Sep 17 00:00:00 2001 From: Micaiah Martin <77340197+mimartin12@users.noreply.github.com> Date: Thu, 24 Feb 2022 07:55:43 -0600 Subject: [PATCH] Add dry-run option for release workflow (#1880) --- .github/workflows/release.yml | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e923c9b0..668c7f79e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,6 +12,7 @@ on: options: - Initial Release - Redeploy + - Dry Run jobs: @@ -23,6 +24,7 @@ jobs: branch-name: ${{ steps.branch.outputs.branch-name }} steps: - name: Branch check + if: ${{ github.event.inputs.release_type != 'Dry Run' }} run: | if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ "$GITHUB_REF" != "refs/heads/hotfix-rc" ]]; then echo "===================================" @@ -32,7 +34,7 @@ jobs: fi - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - name: Check Release Version id: version @@ -90,7 +92,7 @@ jobs: artifacts: ${{ matrix.name }}.zip - name: Login to Azure - uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a + uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf with: creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} @@ -115,7 +117,7 @@ jobs: echo "::set-output name=publish-profile::$publish_profile" - name: Deploy App - uses: azure/webapps-deploy@798e43877120eda6a2a690a4f212c545e586ae31 + uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e with: app-name: ${{ steps.retrieve-secrets.outputs.webapp-name }} publish-profile: ${{ steps.retrieve-secrets.outputs.publish-profile }} @@ -150,11 +152,14 @@ jobs: - service_name: Sso steps: - name: Print environment + env: + RELEASE_OPTION: ${{ github.event.inputs.release_type }} run: | whoami docker --version echo "GitHub ref: $GITHUB_REF" echo "GitHub event: $GITHUB_EVENT" + echo "Github Release Option: $RELEASE_OPTION" - name: Setup DCT id: setup-dct @@ -164,7 +169,7 @@ jobs: azure-keyvault-name: "bitwarden-prod-kv" - name: Checkout repo - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - name: Setup service name id: setup @@ -177,19 +182,31 @@ jobs: - name: Pull latest selfhost image env: SERVICE_NAME: ${{ steps.setup.outputs.service_name }} - run: docker pull bitwarden/$SERVICE_NAME:$_BRANCH_NAME + RELEASE_OPTION: ${{ github.event.inputs.release_type }} + run: | + if [[ "${{ github.event.inputs.release_type }}" == "Dry Run" ]]; then + docker pull bitwarden/$SERVICE_NAME:latest + else + docker pull bitwarden/$SERVICE_NAME:$_BRANCH_NAME + fi - name: Tag version and latest env: SERVICE_NAME: ${{ steps.setup.outputs.service_name }} + RELEASE_OPTION: ${{ github.event.inputs.release_type }} run: | - docker tag bitwarden/$SERVICE_NAME:$_BRANCH_NAME bitwarden/$SERVICE_NAME:$_RELEASE_VERSION - docker tag bitwarden/$SERVICE_NAME:$_BRANCH_NAME bitwarden/$SERVICE_NAME:latest + if [[ "${{ github.event.inputs.release_type }}" == "Dry Run" ]]; then + docker tag bitwarden/$SERVICE_NAME:latest bitwarden/$SERVICE_NAME:dryrun + else + docker tag bitwarden/$SERVICE_NAME:$_BRANCH_NAME bitwarden/$SERVICE_NAME:$_RELEASE_VERSION + docker tag bitwarden/$SERVICE_NAME:$_BRANCH_NAME bitwarden/$SERVICE_NAME:latest + fi - name: List Docker images run: docker images - name: Push version and latest image + if: ${{ github.event.inputs.release_type != 'Dry Run' }} env: DOCKER_CONTENT_TRUST: 1 DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE: ${{ steps.setup-dct.outputs.dct-delegate-repo-passphrase }} @@ -219,7 +236,8 @@ jobs: swagger.json" - name: Create release - uses: ncipollo/release-action@95215a3cb6e6a1908b3c44e00b4fdb15548b1e09 + if: ${{ github.event.inputs.release_type != 'Dry Run' }} + uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01 with: artifacts: 'docker-stub.zip, swagger.json'