Backups V2 Follow-up Fixes / Improvements #736
This file contains 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: iOS e2e tests | |
on: [pull_request, workflow_dispatch] | |
jobs: | |
# Job to install dependencies | |
install-deps: | |
runs-on: ["self-hosted"] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Set up github keys | |
run: git config core.sshCommand "ssh -i ~/.ssh/id_ed25519 -F /dev/null" | |
- name: Clean iOS app | |
run: yarn cache clean && yarn clean:ios > /dev/null 2>&1 || true | |
- name: Set up ENV vars & scripts | |
env: | |
CI_SCRIPTS: ${{ secrets.CI_SCRIPTS }} | |
run: | | |
source ~/.zshrc | |
git clone git@github.com:rainbow-me/rainbow-env.git | |
mv rainbow-env/dotenv .env && rm -rf rainbow-env | |
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@v4 | |
with: | |
path: | | |
${{ steps.yarn-cache-dir-path.outputs.dir }} | |
.yarn/cache | |
.yarn/install-state.gz | |
!.eslintcache # Exclude eslint cache | |
key: ${{ runner.os }}-yarn-${{ github.sha }} # Cache per commit | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install dependencies | |
run: | | |
yarn install && yarn setup | |
- name: Set sanitized branch name | |
id: sanitize | |
run: echo "SANITIZED_REF_NAME=${GITHUB_REF_NAME//\//-}" >> $GITHUB_ENV | |
- name: Upload Yarn cache | |
uses: actions/upload-artifact@v4 | |
with: | |
name: yarn-cache-${{ env.SANITIZED_REF_NAME }} | |
path: | | |
.yarn/cache | |
.yarn/install-state.gz | |
# Job for linting and unit tests | |
linting-and-unit-tests: | |
runs-on: ["self-hosted"] | |
permissions: | |
contents: read | |
needs: install-deps | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Set up github keys | |
run: git config core.sshCommand "ssh -i ~/.ssh/id_ed25519 -F /dev/null" | |
- name: Set sanitized branch name | |
id: sanitize | |
run: echo "SANITIZED_REF_NAME=${GITHUB_REF_NAME//\//-}" >> $GITHUB_ENV | |
- name: Download Yarn cache | |
uses: actions/download-artifact@v4 | |
with: | |
name: yarn-cache-${{ env.SANITIZED_REF_NAME }} | |
path: .yarn | |
- name: Set up ENV vars & scripts | |
env: | |
CI_SCRIPTS: ${{ secrets.CI_SCRIPTS }} | |
run: | | |
source ~/.zshrc | |
git clone git@github.com:rainbow-me/rainbow-env.git | |
mv rainbow-env/dotenv .env && rm -rf rainbow-env | |
eval $CI_SCRIPTS | |
- name: Install dependencies | |
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: Remove ESLint cache | |
run: rm -f .eslintcache | |
- name: Lint | |
run: yarn lint:ci | |
- name: Unit tests | |
run: yarn test | |
# iOS build and e2e tests | |
e2e-ios: | |
runs-on: ["self-hosted"] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
timeout-minutes: 90 | |
needs: install-deps | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Set up github keys | |
run: git config core.sshCommand "ssh -i ~/.ssh/id_ed25519 -F /dev/null" | |
- name: Set sanitized branch name | |
id: sanitize | |
run: echo "SANITIZED_REF_NAME=${GITHUB_REF_NAME//\//-}" >> $GITHUB_ENV | |
- name: Download Yarn cache | |
uses: actions/download-artifact@v4 | |
with: | |
name: yarn-cache-${{ env.SANITIZED_REF_NAME }} | |
path: .yarn | |
- name: Set up ENV vars & scripts | |
env: | |
CI_SCRIPTS: ${{ secrets.CI_SCRIPTS }} | |
run: | | |
source ~/.zshrc | |
git clone git@github.com:rainbow-me/rainbow-env.git | |
mv rainbow-env/dotenv .env && rm -rf rainbow-env | |
eval $CI_SCRIPTS | |
- name: Install dependencies | |
run: | | |
yarn install && yarn setup | |
- name: Rebuild detox cache | |
run: ./node_modules/.bin/detox clean-framework-cache && ./node_modules/.bin/detox build-framework-cache | |
- name: Version debug | |
run: | | |
npx react-native info | |
- name: Install pods | |
run: | | |
rm -rf /Users/administrator/.cocoapods/repos/cocoapods/.git/index.lock | |
yarn install-bundle && yarn install-pods | |
- uses: irgaly/xcode-cache@v1 | |
with: | |
key: xcode-cache-deriveddata-${{ github.workflow }}-${{ github.sha }} | |
restore-keys: xcode-cache-deriveddata-${{ github.workflow }}- | |
- name: Modify env and build app in release mode | |
run: | | |
sed -i'' -e "s/IS_TESTING=false/IS_TESTING=true/" .env && rm -f .env-e | |
yarn detox build --configuration ios.sim.release | |
- name: Detox iOS e2e tests | |
run: | | |
./scripts/run-retry-tests.sh 3 |