chore: mv strings to i18n #5552
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Android | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| push: | |
| branches: [develop] | |
| issue_comment: | |
| types: [created] | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number || github.event.issue.number }} | |
| jobs: | |
| build: | |
| name: Test Build | |
| if: | | |
| (github.event_name == 'pull_request' && github.event.pull_request.draft == false) || | |
| github.event_name == 'push' || | |
| (github.event_name == 'issue_comment' && | |
| github.event.issue.pull_request != null && | |
| ( | |
| startsWith(github.event.comment.body, '/e2e') || | |
| startsWith(github.event.comment.body, '/perf') | |
| ) && | |
| contains(fromJson('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)) | |
| runs-on: blacksmith-8vcpu-ubuntu-2404 | |
| timeout-minutes: 30 | |
| concurrency: | |
| group: e2e-android-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| outputs: | |
| artifact-id: ${{ steps.rock-remote-build-android.outputs.artifact-id }} | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0 | |
| with: | |
| node-version-file: '.node-version' | |
| - name: Install secret tools | |
| run: sudo apt install libsecret-tools | |
| - name: Setup env key | |
| uses: ./.github/actions/ssh/ | |
| with: | |
| name: env | |
| key: ${{ secrets.DEPLOY_PKEY_DOTENV_REPO }} | |
| - name: Setup scripts key | |
| uses: ./.github/actions/ssh/ | |
| with: | |
| name: scripts | |
| key: ${{ secrets.DEPLOY_PKEY_SCRIPTS_REPO }} | |
| - name: Setup sandbox key | |
| uses: ./.github/actions/ssh/ | |
| with: | |
| name: sandbox | |
| key: ${{ secrets.DEPLOY_PKEY_SANDBOX_REPO }} | |
| - name: Setup env | |
| env: | |
| SSH_AUTH_SOCK: /tmp/ssh_agent_env.sock | |
| run: | | |
| git clone git@github.com:rainbow-me/rainbow-env.git | |
| mv rainbow-env/dotenv .env | |
| mv rainbow-env/android/app/google-services.json android/app/google-services.json | |
| rm -rf rainbow-env | |
| sed -i "s/IS_TESTING=false/IS_TESTING=true/" .env | |
| sed -i "s/ENABLE_DEV_MODE=1/ENABLE_DEV_MODE=0/" .env | |
| echo "1" > is_testing | |
| - name: Setup scripts | |
| env: | |
| CI_SCRIPTS: ${{ secrets.CI_SCRIPTS }} | |
| SSH_AUTH_SOCK: /tmp/ssh_agent_scripts.sock | |
| run: | | |
| eval $CI_SCRIPTS | |
| - name: Get Yarn cache directory path | |
| id: yarn-cache-dir-path | |
| run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
| - name: Cache Yarn dependencies | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 | |
| with: | |
| path: | | |
| ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
| .yarn/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-${{ runner.arch }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn- | |
| - name: Install dependencies | |
| env: | |
| SSH_AUTH_SOCK: /tmp/ssh_agent_sandbox.sock | |
| run: | | |
| yarn install && yarn setup | |
| - name: Check for frozen lockfile | |
| run: ./scripts/check-lockfile.sh | |
| - name: Audit CI | |
| run: yarn audit-ci --config audit-ci.jsonc | |
| - name: Rock Remote Build - Android | |
| id: rock-remote-build-android | |
| uses: callstackincubator/android@8c2cb70c209cc7f832130b6e49bcbcaa7ad62613 | |
| env: | |
| # This is a debug keystore for now. | |
| KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }} | |
| KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }} | |
| KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | |
| KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }} | |
| KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} | |
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
| with: | |
| variant: release | |
| sign: true | |
| keystore-base64: ${{ env.KEYSTORE_BASE64 }} | |
| keystore-store-file: ${{ env.KEYSTORE_FILE }} | |
| keystore-store-password: ${{ env.KEYSTORE_PASSWORD }} | |
| keystore-key-alias: ${{ env.KEYSTORE_KEY_ALIAS }} | |
| keystore-key-password: ${{ env.KEYSTORE_KEY_PASSWORD }} | |
| re-sign: true | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| validate-gradle-wrapper: false | |
| rock-build-extra-params: '--extra-params="--no-daemon --build-cache --no-scan"' | |
| comment-bot: false | |
| e2e-tests: | |
| name: E2E Tests (Shard ${{ matrix.shard-index }}) | |
| if: | | |
| github.event_name != 'issue_comment' || | |
| startsWith(github.event.comment.body, '/e2e') | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard-index: [1, 2, 3, 4] | |
| runs-on: app-e2e-runner | |
| needs: build | |
| timeout-minutes: 30 | |
| concurrency: | |
| group: e2e-android-${{ github.workflow }}-${{ github.ref }}-shard-${{ matrix.shard-index }} | |
| cancel-in-progress: false | |
| env: | |
| SHARD_TOTAL: 4 | |
| SHARD_INDEX: ${{ matrix.shard-index }} | |
| ANDROID_EMULATOR_API_LEVEL: 31 | |
| ANDROID_EMULATOR_PROFILE: pixel_6 | |
| ANDROID_EMULATOR_CORES: 4 | |
| ANDROID_EMULATOR_RAM_SIZE: 8192 | |
| ARTIFACTS_FOLDER: e2e-artifacts | |
| ARCH: x86_64 | |
| ANDROID_EMULATOR_WAIT_TIME_BEFORE_KILL: 60 | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 | |
| - name: Setup env key | |
| uses: ./.github/actions/ssh/ | |
| with: | |
| name: env | |
| key: ${{ secrets.DEPLOY_PKEY_DOTENV_REPO }} | |
| - name: Setup env | |
| env: | |
| SSH_AUTH_SOCK: /tmp/ssh_agent_env.sock | |
| run: | | |
| git clone git@github.com:rainbow-me/rainbow-env.git | |
| mv rainbow-env/dotenv .env | |
| rm -rf rainbow-env | |
| - name: Install Maestro | |
| run: export MAESTRO_VERSION=2.0.10; curl -fsSL "https://get.maestro.mobile.dev" | bash | |
| - name: Install Anvil | |
| uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de | |
| with: | |
| version: stable | |
| - name: Download and Unpack APK artifact | |
| run: | | |
| curl -L -H "Authorization: token ${{ github.token }}" -o artifact.zip "https://api.github.com/repos/${{ github.repository }}/actions/artifacts/${{ needs.build.outputs.artifact-id }}/zip" | |
| unzip artifact.zip -d downloaded-artifacts | |
| ls -l downloaded-artifacts | |
| APK_PATH=$(find downloaded-artifacts -name "*.apk" -print -quit) | |
| echo "ARTIFACT_PATH_FOR_E2E=$APK_PATH" >> $GITHUB_ENV | |
| shell: bash | |
| - name: Setup Android Emulator | |
| id: android-emulator | |
| uses: ./.github/actions/android-emulator/ | |
| with: | |
| api-level: ${{ env.ANDROID_EMULATOR_API_LEVEL }} | |
| profile: ${{ env.ANDROID_EMULATOR_PROFILE }} | |
| cores: ${{ env.ANDROID_EMULATOR_CORES }} | |
| ram-size: ${{ env.ANDROID_EMULATOR_RAM_SIZE }} | |
| arch: ${{ env.ARCH }} | |
| - name: Run tests | |
| uses: reactivecircus/android-emulator-runner@1dcd0090116d15e7c562f8db72807de5e036a4ed | |
| id: e2e_test | |
| with: | |
| api-level: ${{ env.ANDROID_EMULATOR_API_LEVEL }} | |
| target: google_apis_playstore | |
| arch: ${{ env.ARCH }} | |
| force-avd-creation: false | |
| emulator-options: -no-snapshot -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: true | |
| profile: ${{ env.ANDROID_EMULATOR_PROFILE }} | |
| cores: ${{ env.ANDROID_EMULATOR_CORES }} | |
| ram-size: ${{ env.ANDROID_EMULATOR_RAM_SIZE }} | |
| script: ./scripts/e2e-android-ci.sh | |
| - name: Upload artifacts | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 | |
| with: | |
| name: artifacts-${{ matrix.shard-index }} | |
| path: ${{ env.ARTIFACTS_FOLDER }} | |
| perf-tests: | |
| name: Perf Tests | |
| if: | | |
| github.event_name != 'issue_comment' || | |
| startsWith(github.event.comment.body, '/perf') | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| needs: build | |
| timeout-minutes: 30 | |
| concurrency: | |
| group: e2e-android-${{ github.workflow }}-${{ github.ref }}-perf | |
| cancel-in-progress: true | |
| env: | |
| ARTIFACTS_FOLDER: e2e-artifacts | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 | |
| - name: Download and Unpack APK artifact | |
| run: | | |
| curl -L -H "Authorization: token ${{ github.token }}" -o artifact.zip "https://api.github.com/repos/${{ github.repository }}/actions/artifacts/${{ needs.build.outputs.artifact-id }}/zip" | |
| unzip artifact.zip -d downloaded-artifacts | |
| ls -l downloaded-artifacts | |
| APK_PATH=$(find downloaded-artifacts -name "*.apk" -print -quit) | |
| echo "ARTIFACT_PATH_FOR_E2E=$APK_PATH" >> $GITHUB_ENV | |
| shell: bash | |
| - name: Run tests | |
| run: ./scripts/e2e-android-perf-ci-aws.sh | |
| env: | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_DEVICE_FARM_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_DEVICE_FARM_SECRET_ACCESS_KEY }} | |
| AWS_DEFAULT_REGION: us-west-2 | |
| PROJECT_ARN: ${{ secrets.AWS_DEVICE_FARM_PROJECT_ARN }} | |
| DEVICE_POOL_ARN: ${{ secrets.AWS_DEVICE_FARM_DEVICE_POOL_ARN }} | |
| ARTIFACT_PATH_FOR_E2E: ${{ env.ARTIFACT_PATH_FOR_E2E }} | |
| GITHUB_PR_NUMBER: ${{ env.PR_NUMBER }} | |
| - name: Install Flashlight | |
| if: github.event_name == 'pull_request' | |
| run: | | |
| curl https://get.flashlight.dev | bash | |
| - name: Generate Report | |
| if: github.event_name == 'pull_request' | |
| run: ./scripts/e2e-android-perf-ci-report.sh | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GITHUB_RUN_ID: ${{ github.run_id }} | |
| GITHUB_PR_NUMBER: ${{ env.PR_NUMBER }} | |
| GITHUB_REPOSITORY: ${{ github.repository }} | |
| GITHUB_COMMIT: ${{ github.sha }} | |
| - name: Upload Device Farm Logs | |
| if: always() | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 | |
| with: | |
| name: device-farm-logs-${{ env.PR_NUMBER || github.ref_name }} | |
| path: ${{ env.ARTIFACTS_FOLDER }}/logs | |
| - name: Upload Current Perf JSON | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 | |
| with: | |
| name: perf-results-${{ env.PR_NUMBER || github.ref_name }} | |
| path: ${{ env.ARTIFACTS_FOLDER }}/perf |