From cb2f93a5060a73fb68659a148409db944834af50 Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Mon, 25 Jul 2022 19:23:25 +0200 Subject: [PATCH 1/8] Add autobump version number workflow --- .github/workflows/version-auto-bump.yml | 121 ++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 .github/workflows/version-auto-bump.yml diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml new file mode 100644 index 000000000..edcf44739 --- /dev/null +++ b/.github/workflows/version-auto-bump.yml @@ -0,0 +1,121 @@ +--- +name: Version Auto Bump + +on: + release: + types: [published] + + +jobs: + + setup: + name: "Setup" + runs-on: ubuntu-20.04 + outputs: + version_number: ${{ steps.version.outputs.new-version }} + steps: + - name: Checkout Branch + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + + - name: Get version to bump + id: version + run: | + CURR_MAJOR=$(echo ${{ github.event.release.tag }} | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/' + CURR_VER=$(echo ${{ github.event.release.tag }} | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/' + echo $CURR_VER + + ((CURR_VER++)) + NEW_VER=$CURR_MAJOR$CURR_VER + + echo "::set-output name=new-version::$NEW_VER" + + bump_version: + name: "Create version_bump branch" + runs-on: ubuntu-20.04 + needs: + - setup + steps: + - name: Checkout Branch + uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 + + - name: Create Version Branch + run: | + git switch -c version_bump_${{ needs.setup.outputs.version_number}} + + - name: Bump Version - Android XML + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ needs.setup.outputs.version_number}} + file_path: "./src/Android/Properties/AndroidManifest.xml" + + - name: Bump Version - iOS.Autofill + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ needs.setup.outputs.version_number}} + file_path: "./src/iOS.Autofill/Info.plist" + + - name: Bump Version - iOS.Extension + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ needs.setup.outputs.version_number}} + file_path: "./src/iOS.Extension/Info.plist" + + - name: Bump Version - iOS.ShareExtension + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ needs.setup.outputs.version_number}} + file_path: "./src/iOS.ShareExtension/Info.plist" + + - name: Bump Version - iOS + uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + with: + version: ${{ needs.setup.outputs.version_number}} + file_path: "./src/iOS/Info.plist" + + - name: Setup git + run: | + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + + - name: Check if version changed + id: version-changed + run: | + if [ -n "$(git status --porcelain)" ]; then + echo "::set-output name=changes_to_commit::TRUE" + else + echo "::set-output name=changes_to_commit::FALSE" + echo "No changes to commit!"; + fi + + - name: Commit files + if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + run: | + git commit -m "Bumped version to ${{ needs.setup.outputs.version_number}}" -a + + - name: Push changes + if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + run: git push -u origin version_bump_${{ needs.setup.outputs.version_number}} + + - name: Create Version PR + if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + env: + PR_BRANCH: "version_bump_${{ needs.setup.outputs.version_number}}" + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + BASE_BRANCH: master + TITLE: "Bump version to ${{ needs.setup.outputs.version_number}}" + run: | + gh pr create --title "$TITLE" \ + --base "$BASE" \ + --head "$PR_BRANCH" \ + --label "version update" \ + --label "automated pr" \ + --body " + ## Type of change + - [ ] Bug fix + - [ ] New feature development + - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) + - [ ] Build/deploy pipeline (DevOps) + - [X] Other + + ## Objective + Automated version bump to ${{ needs.setup.outputs.version_number}}" From 442974593bf51853d745268816172e446983c315 Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Mon, 25 Jul 2022 19:24:13 +0200 Subject: [PATCH 2/8] Comment pr since not tested --- .github/workflows/version-auto-bump.yml | 54 ++++++++++++------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index edcf44739..4e15c4db2 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -92,30 +92,30 @@ jobs: run: | git commit -m "Bumped version to ${{ needs.setup.outputs.version_number}}" -a - - name: Push changes - if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} - run: git push -u origin version_bump_${{ needs.setup.outputs.version_number}} - - - name: Create Version PR - if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} - env: - PR_BRANCH: "version_bump_${{ needs.setup.outputs.version_number}}" - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - BASE_BRANCH: master - TITLE: "Bump version to ${{ needs.setup.outputs.version_number}}" - run: | - gh pr create --title "$TITLE" \ - --base "$BASE" \ - --head "$PR_BRANCH" \ - --label "version update" \ - --label "automated pr" \ - --body " - ## Type of change - - [ ] Bug fix - - [ ] New feature development - - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) - - [ ] Build/deploy pipeline (DevOps) - - [X] Other - - ## Objective - Automated version bump to ${{ needs.setup.outputs.version_number}}" + # - name: Push changes + # if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + # run: git push -u origin version_bump_${{ needs.setup.outputs.version_number}} + + # - name: Create Version PR + # if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + # env: + # PR_BRANCH: "version_bump_${{ needs.setup.outputs.version_number}}" + # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + # BASE_BRANCH: master + # TITLE: "Bump version to ${{ needs.setup.outputs.version_number}}" + # run: | + # gh pr create --title "$TITLE" \ + # --base "$BASE" \ + # --head "$PR_BRANCH" \ + # --label "version update" \ + # --label "automated pr" \ + # --body " + # ## Type of change + # - [ ] Bug fix + # - [ ] New feature development + # - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) + # - [ ] Build/deploy pipeline (DevOps) + # - [X] Other + + # ## Objective + # Automated version bump to ${{ needs.setup.outputs.version_number}}" From c6b9c15753ec296969bbe6d808201cd7d129bddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ch=C4=99ci=C5=84ski?= Date: Wed, 27 Jul 2022 11:19:57 +0200 Subject: [PATCH 3/8] Update .github/workflows/version-auto-bump.yml Co-authored-by: Micaiah Martin <77340197+mimartin12@users.noreply.github.com> --- .github/workflows/version-auto-bump.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index 4e15c4db2..7fcb9c9cc 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -39,8 +39,7 @@ jobs: uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - name: Create Version Branch - run: | - git switch -c version_bump_${{ needs.setup.outputs.version_number}} + run: git switch -c version_bump_${{ needs.setup.outputs.version_number}} - name: Bump Version - Android XML uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 From dbd977374f4e354862b3fa27625ccf7180ad86de Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Wed, 27 Jul 2022 15:46:06 +0200 Subject: [PATCH 4/8] Trigger version bump workflow --- .github/workflows/version-auto-bump.yml | 111 +++++++----------------- 1 file changed, 29 insertions(+), 82 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index 4e15c4db2..d5d0e853e 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -4,6 +4,8 @@ name: Version Auto Bump on: release: types: [published] + # For testing only + workflow_dispatch: jobs: @@ -27,95 +29,40 @@ jobs: ((CURR_VER++)) NEW_VER=$CURR_MAJOR$CURR_VER + echo $NEW_VER + echo "::set-output name=new-version::$NEW_VER" - bump_version: - name: "Create version_bump branch" + trigger_version_bump: + name: "Trigger version bump workflow" runs-on: ubuntu-20.04 needs: - setup steps: - - name: Checkout Branch - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 - - - name: Create Version Branch - run: | - git switch -c version_bump_${{ needs.setup.outputs.version_number}} - - - name: Bump Version - Android XML - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 - with: - version: ${{ needs.setup.outputs.version_number}} - file_path: "./src/Android/Properties/AndroidManifest.xml" - - - name: Bump Version - iOS.Autofill - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 - with: - version: ${{ needs.setup.outputs.version_number}} - file_path: "./src/iOS.Autofill/Info.plist" - - - name: Bump Version - iOS.Extension - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 + - name: Login to Azure + uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010 with: - version: ${{ needs.setup.outputs.version_number}} - file_path: "./src/iOS.Extension/Info.plist" + creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }} - - name: Bump Version - iOS.ShareExtension - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 - with: - version: ${{ needs.setup.outputs.version_number}} - file_path: "./src/iOS.ShareExtension/Info.plist" - - - name: Bump Version - iOS - uses: bitwarden/gh-actions/version-bump@03ad9a873c39cdc95dd8d77dbbda67f84db43945 - with: - version: ${{ needs.setup.outputs.version_number}} - file_path: "./src/iOS/Info.plist" - - - name: Setup git - run: | - git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - - - name: Check if version changed - id: version-changed + - name: Retrieve secrets + id: retrieve-secrets + env: + KEYVAULT: bitwarden-prod-kv + SECRET: "github-pat-bitwarden-devops-bot-repo-scope" run: | - if [ -n "$(git status --porcelain)" ]; then - echo "::set-output name=changes_to_commit::TRUE" - else - echo "::set-output name=changes_to_commit::FALSE" - echo "No changes to commit!"; - fi - - - name: Commit files - if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} + VALUE=$(az keyvault secret show --vault-name $KEYVAULT --name $SECRET --query value --output tsv) + echo "::add-mask::$VALUE" + echo "::set-output name=$SECRET::$VALUE" + + - name: Call GitHub API to trigger workflow bump + env: + TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }} + VERSION: ${{ needs.setup.outputs.version_number}} run: | - git commit -m "Bumped version to ${{ needs.setup.outputs.version_number}}" -a - - # - name: Push changes - # if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} - # run: git push -u origin version_bump_${{ needs.setup.outputs.version_number}} - - # - name: Create Version PR - # if: ${{ steps.version-changed.outputs.changes_to_commit == 'TRUE' }} - # env: - # PR_BRANCH: "version_bump_${{ needs.setup.outputs.version_number}}" - # GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - # BASE_BRANCH: master - # TITLE: "Bump version to ${{ needs.setup.outputs.version_number}}" - # run: | - # gh pr create --title "$TITLE" \ - # --base "$BASE" \ - # --head "$PR_BRANCH" \ - # --label "version update" \ - # --label "automated pr" \ - # --body " - # ## Type of change - # - [ ] Bug fix - # - [ ] New feature development - # - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc) - # - [ ] Build/deploy pipeline (DevOps) - # - [X] Other - - # ## Objective - # Automated version bump to ${{ needs.setup.outputs.version_number}}" + JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION") + curl \ + -X POST \ + -i -u bitwarden-devops-bot:$TOKEN \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \ + -d $JSON_STRING From 942e71e6bc5f77d9ea950dbb86af11e17ca8d2e3 Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Wed, 27 Jul 2022 15:52:02 +0200 Subject: [PATCH 5/8] Comment for testing --- .github/workflows/version-auto-bump.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index d5d0e853e..bf4a4da37 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -54,15 +54,15 @@ jobs: echo "::add-mask::$VALUE" echo "::set-output name=$SECRET::$VALUE" - - name: Call GitHub API to trigger workflow bump - env: - TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }} - VERSION: ${{ needs.setup.outputs.version_number}} - run: | - JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION") - curl \ - -X POST \ - -i -u bitwarden-devops-bot:$TOKEN \ - -H "Accept: application/vnd.github.v3+json" \ - https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \ - -d $JSON_STRING + # - name: Call GitHub API to trigger workflow bump + # env: + # TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }} + # VERSION: ${{ needs.setup.outputs.version_number}} + # run: | + # JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION") + # curl \ + # -X POST \ + # -i -u bitwarden-devops-bot:$TOKEN \ + # -H "Accept: application/vnd.github.v3+json" \ + # https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \ + # -d $JSON_STRING From 842eefd2c7e17cbe401c8b6dfacf0f7ce7a51029 Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Wed, 27 Jul 2022 16:01:48 +0200 Subject: [PATCH 6/8] add input for testing --- .github/workflows/version-auto-bump.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index bf4a4da37..eccac36c4 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -6,7 +6,10 @@ on: types: [published] # For testing only workflow_dispatch: - + inputs: + tag: + description: "Release tag name" + required: true jobs: @@ -21,9 +24,13 @@ jobs: - name: Get version to bump id: version + env: + # For test + # RELEASE_TAG: ${{ github.event.release.tag }} + RELEASE_TAG: ${{ github.event.inputs.tag }} run: | - CURR_MAJOR=$(echo ${{ github.event.release.tag }} | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/' - CURR_VER=$(echo ${{ github.event.release.tag }} | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/' + CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/' + CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/' echo $CURR_VER ((CURR_VER++)) From b41f6968714e84fab003a29dae53db98d5dbe8b7 Mon Sep 17 00:00:00 2001 From: Michal Checinski Date: Mon, 1 Aug 2022 11:07:46 +0200 Subject: [PATCH 7/8] FIx --- .github/workflows/version-auto-bump.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index eccac36c4..d505ddb36 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -29,8 +29,8 @@ jobs: # RELEASE_TAG: ${{ github.event.release.tag }} RELEASE_TAG: ${{ github.event.inputs.tag }} run: | - CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/' - CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/' + CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/') + CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/') echo $CURR_VER ((CURR_VER++)) From 8c85deab2367b790427829f18281198d882cd9b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ch=C4=99ci=C5=84ski?= Date: Mon, 1 Aug 2022 11:19:08 +0200 Subject: [PATCH 8/8] Remove testing values --- .github/workflows/version-auto-bump.yml | 34 ++++++++++--------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml index d505ddb36..fefb1f191 100644 --- a/.github/workflows/version-auto-bump.yml +++ b/.github/workflows/version-auto-bump.yml @@ -4,12 +4,6 @@ name: Version Auto Bump on: release: types: [published] - # For testing only - workflow_dispatch: - inputs: - tag: - description: "Release tag name" - required: true jobs: @@ -25,9 +19,7 @@ jobs: - name: Get version to bump id: version env: - # For test - # RELEASE_TAG: ${{ github.event.release.tag }} - RELEASE_TAG: ${{ github.event.inputs.tag }} + RELEASE_TAG: ${{ github.event.release.tag }} run: | CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/') CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/') @@ -61,15 +53,15 @@ jobs: echo "::add-mask::$VALUE" echo "::set-output name=$SECRET::$VALUE" - # - name: Call GitHub API to trigger workflow bump - # env: - # TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }} - # VERSION: ${{ needs.setup.outputs.version_number}} - # run: | - # JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION") - # curl \ - # -X POST \ - # -i -u bitwarden-devops-bot:$TOKEN \ - # -H "Accept: application/vnd.github.v3+json" \ - # https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \ - # -d $JSON_STRING + - name: Call GitHub API to trigger workflow bump + env: + TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }} + VERSION: ${{ needs.setup.outputs.version_number}} + run: | + JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION") + curl \ + -X POST \ + -i -u bitwarden-devops-bot:$TOKEN \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \ + -d $JSON_STRING