diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 2c04ede552a8..098b00e26223 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -26,6 +26,31 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }} + - name: Fail workflow if PR is not mergeable + if: ${{ steps.isPullRequestMergeable.outputs.IS_MERGEABLE == 'false' }} + run: exit 1 + + # This Slack step is duplicated in all workflows, if you make a change to this step, make sure to update all + # the other workflows with the same change + - uses: 8398a7/action-slack@v3 + name: Job failed Slack notification + if: ${{ failure() }} + with: + status: custom + fields: workflow, repo + custom_payload: | + { + channel: '#announce', + attachments: [{ + color: "#DB4545", + pretext: ``, + text: `💥 ${process.env.AS_REPO} failed on ${process.env.AS_WORKFLOW} workflow 💥`, + }] + } + env: + GITHUB_TOKEN: ${{ github.token }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + master: runs-on: ubuntu-latest needs: getPullRequestMergeability @@ -43,12 +68,11 @@ jobs: uses: hmarr/auto-approve-action@7782c7e2bdf62b4d79bdcded8332808fd2f179cd with: github-token: ${{ secrets.GITHUB_TOKEN }} - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && steps.changed.outputs.files_updated == 'android/app/build.gradle ios/ExpensifyCash/Info.plist ios/ExpensifyCashTests/Info.plist package-lock.json package.json' && steps.changed.outputs.files_created == '' && steps.changed.outputs.files_deleted == '' + if: steps.changed.outputs.files_updated == 'android/app/build.gradle ios/ExpensifyCash/Info.plist ios/ExpensifyCashTests/Info.plist package-lock.json package.json' && steps.changed.outputs.files_created == '' && steps.changed.outputs.files_deleted == '' - name: Check for an auto merge # Version: 0.12.0 uses: pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07 - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && github.event.pull_request.mergeable_state == 'clean' env: GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} @@ -83,12 +107,11 @@ jobs: uses: hmarr/auto-approve-action@7782c7e2bdf62b4d79bdcded8332808fd2f179cd with: github-token: ${{ secrets.GITHUB_TOKEN }} - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && github.event.pull_request.head.ref == 'master' + if: github.event.pull_request.head.ref == 'master' - name: Check for an auto merge # Version: 0.12.0 uses: pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07 - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && github.event.pull_request.mergeable_state == 'clean' env: GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} @@ -123,12 +146,11 @@ jobs: uses: hmarr/auto-approve-action@7782c7e2bdf62b4d79bdcded8332808fd2f179cd with: github-token: ${{ secrets.GITHUB_TOKEN }} - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && github.event.pull_request.head.ref == 'staging' + if: github.event.pull_request.head.ref == 'staging' - name: Check for an auto merge # Version: 0.12.0 uses: pascalgn/automerge-action@c9bd1823770819dc8fb8a5db2d11a3a95fbe9b07 - if: needs.getPullRequestMergeability.outputs.isMergeable == 'true' && github.event.pull_request.mergeable_state == 'clean' env: GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }} diff --git a/.github/workflows/finishReleaseCycle.yml b/.github/workflows/finishReleaseCycle.yml index b1cbb74bd5b4..afa5496bb2d5 100644 --- a/.github/workflows/finishReleaseCycle.yml +++ b/.github/workflows/finishReleaseCycle.yml @@ -4,10 +4,9 @@ on: issues: types: [closed] +# The updateProduction and createNewStagingDeployCash jobs are executed when a StagingDeployCash is closed. jobs: - # This job is executed when a StagingDeployCash is closed. - # It updates the production branch to trigger the production deploy, - # and creates a new StagingDeployCash for the next release cycle. + # Update the production branch to trigger the production deploy. updateProduction: runs-on: ubuntu-latest @@ -37,9 +36,47 @@ jobs: pr_title: Update version to ${{ env.PRODUCTION_VERSION }} on production pr_body: Update version to ${{ env.PRODUCTION_VERSION }} + # This Slack step is duplicated in all workflows, if you make a change to this step, make sure to update all + # the other workflows with the same change + - uses: 8398a7/action-slack@v3 + name: Job failed Slack notification + if: ${{ failure() }} + with: + status: custom + fields: workflow, repo + custom_payload: | + { + channel: '#announce', + attachments: [{ + color: "#DB4545", + pretext: ``, + text: `💥 ${process.env.AS_REPO} failed on ${process.env.AS_WORKFLOW} workflow 💥`, + }] + } + env: + GITHUB_TOKEN: ${{ github.token }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} + + # Deploy deferred PRs to staging and create a new StagingDeployCash for the next release cycle. + createNewStagingDeployCash: + runs-on: macos-latest + if: contains(github.event.issue.labels.*.name, 'StagingDeployCash') + steps: + # Version: 2.3.4 + - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + with: + ref: master + fetch-depth: 0 + token: ${{ secrets.OS_BOTIFY_TOKEN }} + + - uses: softprops/turnstyle@8db075d65b19bf94e6e8687b504db69938dc3c65 + with: + poll-interval-seconds: 10 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Create a new branch off master run: | - git checkout master git checkout -b version-bump-${{ github.sha }} git push --set-upstream origin version-bump-${{ github.sha }} @@ -70,10 +107,10 @@ jobs: body: Update version to ${{ steps.bumpVersion.outputs.NEW_VERSION }} labels: automerge - #TODO: Once we add cherry picking, we will need run this from elsewhere - name: Tag version run: git tag ${{ steps.bumpVersion.outputs.NEW_VERSION }} + #TODO: Once we add cherry picking, we will need run this from elsewhere - name: 🚀 Push tags to trigger staging deploy 🚀 run: git push --tags diff --git a/android/app/build.gradle b/android/app/build.gradle index 8720f33ca755..cbaca6fd8bea 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -148,8 +148,8 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion multiDexEnabled rootProject.ext.multiDexEnabled - versionCode 1001000277 - versionName "1.0.2-77" + versionCode 1001000279 + versionName "1.0.2-79" } splits { abi { diff --git a/ios/ExpensifyCash/Info.plist b/ios/ExpensifyCash/Info.plist index 34708be002bc..391bd4249c6d 100644 --- a/ios/ExpensifyCash/Info.plist +++ b/ios/ExpensifyCash/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.0.2.77 + 1.0.2.79 ITSAppUsesNonExemptEncryption LSApplicationQueriesSchemes diff --git a/ios/ExpensifyCashTests/Info.plist b/ios/ExpensifyCashTests/Info.plist index b4e6ba12ac20..0074b809ca21 100644 --- a/ios/ExpensifyCashTests/Info.plist +++ b/ios/ExpensifyCashTests/Info.plist @@ -19,6 +19,6 @@ CFBundleSignature ???? CFBundleVersion - 1.0.2.77 + 1.0.2.79 diff --git a/package-lock.json b/package-lock.json index 1d20f6b6057f..7958ffae5c2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "expensify.cash", - "version": "1.0.2-77", + "version": "1.0.2-79", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 86c370acdc8e..76c0006c777e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "expensify.cash", - "version": "1.0.2-77", + "version": "1.0.2-79", "author": "Expensify, Inc.", "homepage": "https://expensify.cash", "description": "Expensify.cash is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",