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.",