From a15d731c834fea2b4faee7bf64f08d4bd1981222 Mon Sep 17 00:00:00 2001 From: Jan Nowakowski Date: Wed, 8 Jan 2025 16:41:09 +0100 Subject: [PATCH 1/8] Adhoc builds workflow follow up --- .github/workflows/testBuildHybrid.yml | 30 ++++++++++----------------- scripts/run-build.sh | 2 +- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/.github/workflows/testBuildHybrid.yml b/.github/workflows/testBuildHybrid.yml index d9f22ecb9178..5ae37e77c1a9 100644 --- a/.github/workflows/testBuildHybrid.yml +++ b/.github/workflows/testBuildHybrid.yml @@ -1,4 +1,4 @@ -name: Build and deploy hybird apps for testing +name: Build and deploy hybrid apps for testing on: workflow_dispatch: @@ -6,16 +6,12 @@ on: PULL_REQUEST_NUMBER: description: Pull Request number for correct placement of apps required: true - OLD_DOT_COMMIT: - description: The branch, tag or SHA to checkout on Old Dot side - required: false pull_request_target: types: [opened, synchronize, labeled] branches: ['*ci-test/**'] env: PULL_REQUEST_NUMBER: ${{ github.event.number || github.event.inputs.PULL_REQUEST_NUMBER }} - OLD_DOT_COMMIT: ${{ github.event.inputs.OLD_DOT_COMMIT }} jobs: validateActor: @@ -100,14 +96,12 @@ jobs: fetch-depth: 0 - name: Update submodule to match main - env: - OLD_DOT_COMMIT: ${{ env.OLD_DOT_COMMIT }} run: | - git submodule update --init --remote - if [[ -z "$OLD_DOT_COMMIT" ]]; then - git fetch - git checkout ${{ env.OLD_DOT_COMMIT }} - fi + if git diff main --name-only | grep -q Mobile-Expensify; then + git submodule update --init + else + git submodule update --init --remote + fi - name: Configure MapBox SDK run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }} @@ -210,14 +204,12 @@ jobs: fetch-depth: 0 - name: Update submodule to match main - env: - OLD_DOT_COMMIT: ${{ env.OLD_DOT_COMMIT }} run: | - git submodule update --init --remote - if [[ -z "$OLD_DOT_COMMIT" ]]; then - git fetch - git checkout ${{ env.OLD_DOT_COMMIT }} - fi + if git diff main --name-only | grep -q Mobile-Expensify; then + git submodule update --init + else + git submodule update --init --remote + fi - name: Configure MapBox SDK run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }} diff --git a/scripts/run-build.sh b/scripts/run-build.sh index fd38f3c98861..67da6285e1a0 100755 --- a/scripts/run-build.sh +++ b/scripts/run-build.sh @@ -35,7 +35,7 @@ NEW_DOT_FLAG="${STANDALONE_NEW_DOT:-false}" # Set HybridApp-specific arguments IOS_MODE="Debug" ANDROID_MODE="Debug" - SCHEME="Expensify" + SCHEME="Expensify Dev" APP_ID="org.me.mobiexpensifyg" echo -e "\n${GREEN}Starting a HybridApp build!${NC}" From b0885279e8390724e37a2fc598dc514cbc5a692a Mon Sep 17 00:00:00 2001 From: Jan Nowakowski Date: Fri, 10 Jan 2025 10:22:17 +0100 Subject: [PATCH 2/8] Let author of PR specify Mobile-Expensify placement --- .github/PULL_REQUEST_TEMPLATE.md | 7 +++ .github/workflows/testBuildHybrid.yml | 64 ++++++++++++++++++++++----- 2 files changed, 61 insertions(+), 10 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1446f1e4d851..f22caf852727 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -22,6 +22,13 @@ $ PROPOSAL: + + ### Tests diff --git a/.github/workflows/testBuildHybrid.yml b/.github/workflows/testBuildHybrid.yml index d8d3c4b85621..549349887e3d 100644 --- a/.github/workflows/testBuildHybrid.yml +++ b/.github/workflows/testBuildHybrid.yml @@ -60,15 +60,15 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - getOldDotBranch: + getOldDotPR: runs-on: ubuntu-latest needs: validateActor if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} outputs: - OLD_DOT_BRANCH: ${{ steps.old-dot-commit.outputs.result }} + OLD_DOT_PR: ${{ steps.old-dot-pr.outputs.result }} steps: - - name: Check if author specifed Old Dot branch or commit - id: old-dot-commit + - name: Check if author specifed Old Dot PR + id: old-dot-pr uses: actions/github-script@v7 with: github-token: ${{ github.token }} @@ -81,11 +81,27 @@ jobs: }); const body = pullRequest.data.body; - const regex = /MOBILE-EXPENSIFY:(?.*)/; - const found = body.match(regex)?.groups?.commit || ""; + const regex = /MOBILE-EXPENSIFY:(?.*)/; + const found = body.match(regex)?.groups?.prNumber || ""; return found.trim(); + getOldDotBranchRef: + runs-on: ubuntu-latest + needs: getOldDotPR + if: ${{ needs.getOldDotPR.outputs.OLD_DOT_PR != '' }} + outputs: + OLD_DOT_REF: ${{ steps.getHeadRef.outputs.REF }} + steps: + - name: Check if pull request number is correct + id: getHeadRef + run: | + set -e + echo "REF=$(gh pr view ${{ needs.getOldDotPR.outputs.OLD_DOT_PR }} --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + postGitHubCommentBuildStarted: runs-on: ubuntu-latest needs: [validateActor, getBranchRef] @@ -106,7 +122,7 @@ jobs: androidHybrid: name: Build Android HybridApp - needs: [validateActor, getBranchRef, getOldDotBranch] + needs: [validateActor, getBranchRef, getOldDotBranchRef] if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} runs-on: ubuntu-latest-xl outputs: @@ -126,11 +142,11 @@ jobs: git submodule update --init --remote - name: Checkout Old Dot to author specified branch or commit - if: ${{ needs.getOldDotBranch.outputs.OLD_DOT_BRANCH != '' }} + if: ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF != '' }} run: | cd Mobile-Expensify git fetch - git checkout ${{ needs.getOldDotBranch.outputs.OLD_DOT_BRANCH }} + git checkout ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }} - name: Configure MapBox SDK run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }} @@ -217,7 +233,7 @@ jobs: iosHybrid: name: Build and deploy iOS for testing - needs: [validateActor, getBranchRef, getOldDotBranch] + needs: [validateActor, getBranchRef, getOldDotBranchRef] if: ${{ fromJSON(needs.validateActor.outputs.READY_TO_BUILD) }} env: DEVELOPER_DIR: /Applications/Xcode_16.2.0.app/Contents/Developer @@ -237,11 +253,11 @@ jobs: git submodule update --init --remote - name: Checkout Old Dot to author specified branch or commit - if: ${{ needs.getOldDotBranch.outputs.OLD_DOT_BRANCH != '' }} + if: ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF != '' }} run: | cd Mobile-Expensify git fetch - git checkout ${{ needs.getOldDotBranch.outputs.OLD_DOT_BRANCH }} + git checkout ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }} - name: Configure MapBox SDK run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}