diff --git a/.github/workflows/preDeploy.yml b/.github/workflows/preDeploy.yml index af42e68bdabb..dcd90b5a64c7 100644 --- a/.github/workflows/preDeploy.yml +++ b/.github/workflows/preDeploy.yml @@ -222,124 +222,10 @@ jobs: So it might take a while before you're paid for your work, but we typically post multiple new jobs every day, so there's plenty of opportunity. I hope you've had a positive experience contributing to this repo! :blush: - e2e-tests: - name: "Run e2e performance regression tests" - runs-on: ubuntu-20.04-64core - steps: - - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 - with: - fetch-depth: 0 - - - uses: Expensify/App/.github/actions/composite/setupNode@main - - - uses: ruby/setup-ruby@eae47962baca661befdfd24e4d6c34ade04858f7 - with: - ruby-version: '2.7' - bundler-cache: true - - # Cache gradle to improve Android build time - - name: Gradle cache - uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef - - - name: Make zip directory for everything to send to AWS Device Farm - run: mkdir zip - - - name: Checkout "Compare" commit - run: git checkout ${{ github.event.before }} - - - name: Install node packages - uses: nick-invision/retry@0711ba3d7808574133d713a0d92d2941be03a350 - with: - timeout_minutes: 10 - max_attempts: 5 - command: npm ci - - - name: Build "Compare" APK - run: npm run android-build-e2e - - - name: Copy "Compare" APK - run: cp android/app/build/outputs/apk/e2eRelease/app-e2eRelease.apk zip/app-e2eRelease-compare.apk - - - name: Checkout "Baseline" commit (last release) - run: git checkout "$(gh release list --limit 1 | awk '{ print $1 }')" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Install node packages - uses: nick-invision/retry@0711ba3d7808574133d713a0d92d2941be03a350 - with: - timeout_minutes: 10 - max_attempts: 5 - command: npm ci - - - name: Build "Baseline" APK - run: npm run android-build-e2e - - - name: Copy "Baseline" APK - run: cp android/app/build/outputs/apk/e2eRelease/app-e2eRelease.apk zip/app-e2eRelease-baseline.apk - - - name: Checkout previous branch for source code to run on AWS Device farm - run: git checkout - - - - name: Copy e2e code into zip folder - run: cp -r tests/e2e zip - - - name: Zip everything in the zip directory up - run: zip -qr App.zip ./zip - - - name: Configure AWS Credentials - uses: Expensify/App/.github/actions/composite/configureAwsCredentials@main - with: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: us-west-2 - - - name: Schedule AWS Device Farm test run - uses: realm/aws-devicefarm/test-application@7b9a91236c456c97e28d384c9e476035d5ea686b - with: - name: App E2E Performance Regression Tests - project_arn: ${{ secrets.AWS_PROJECT_ARN }} - device_pool_arn: ${{ secrets.AWS_DEVICE_POOL_ARN }} - app_file: zip/app-e2eRelease-baseline.apk - app_type: ANDROID_APP - test_type: APPIUM_NODE - test_package_file: App.zip - test_package_type: APPIUM_NODE_TEST_PACKAGE - test_spec_file: tests/e2e/TestSpec.yml - test_spec_type: APPIUM_NODE_TEST_SPEC - remote_src: false - file_artifacts: Customer Artifacts.zip - cleanup: true - - - name: Unzip AWS Device Farm results - if: ${{ always() }} - run: unzip Customer\ Artifacts.zip - - - name: Print AWS Device Farm run results - if: ${{ always() }} - run: cat "./Host_Machine_Files/\$WORKING_DIRECTORY/debug.log" - - - name: Set output of AWS Device Farm into GitHub ENV - run: | - { echo 'OUTPUT<> "$GITHUB_ENV" - - - name: Get merged pull request - id: getMergedPullRequest - # TODO: Point back action actions-ecosystem after https://github.com/actions-ecosystem/action-get-merged-pull-request/pull/223 is merged - uses: roryabraham/action-get-merged-pull-request@7a7a194f6ff8f3eef58c822083695a97314ebec1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - - - name: Leave output of AWS Device Farm as a PR comment - run: | - gh pr comment ${{ steps.getMergedPullRequest.outputs.number }} -F ./Host_Machine_Files/\$WORKING_DIRECTORY/output.md - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Check if test failed, if so leave a deploy blocker label - if: ${{ contains(env.OUTPUT, '🔴') }} - run: | - gh pr edit ${{ steps.getMergedPullRequest.outputs.number }} --add-label 'DeployBlockerCash' - gh pr comment ${{ steps.getMergedPullRequest.outputs.number }} -b "@Expensify/mobile-deployers 📣 Please look into this performance regression as it's a deploy blocker." - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + e2ePerformanceTests: + needs: [chooseDeployActions] + uses: Expensify/App/.github/workflows/e2ePerformanceTests.yml + secrets: inherit + with: + DELTA_REF: main + PR_NUMBER: ${{ needs.chooseDeployActions.outputs.MERGED_PR }}