fix(test): Flaky E2E Android Metrics App Start Time #10337
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: Build & Test | |
on: | |
push: | |
branches: | |
- main | |
- v5 | |
- release/** | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
jobs: | |
diff_check: | |
uses: ./.github/workflows/skip-ci.yml | |
job_test: | |
name: Test | |
runs-on: ubuntu-latest | |
needs: [diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Test | |
run: yarn test | |
job_lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
needs: [diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Lint | |
run: yarn lint | |
job_check_integrity: | |
name: Check package integrity | |
runs-on: ubuntu-latest | |
needs: [diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Save initial lock file | |
run: cp yarn.lock yarn.lock.initial | |
- name: Install Dependencies (update lock if necessary) | |
run: yarn install | |
- name: Check lock file integrity | |
run: | | |
["$(diff yarn.lock.initial yarn.lock)" -eq ""] | |
job_build: | |
name: Build | |
runs-on: ubuntu-latest | |
needs: [diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Build | |
run: yarn build | |
- name: Archive dist | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist | |
path: packages/core/dist | |
- name: Archive ts3.8 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ts3.8 | |
path: packages/core/ts3.8 | |
- name: Archive Expo Plugin | |
uses: actions/upload-artifact@v4 | |
with: | |
name: expo-plugin | |
path: packages/core/plugin/build | |
- name: Pack | |
run: yarn build:tarball | |
- name: Archive Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.sha }} | |
path: | | |
${{ github.workspace }}/packages/core/*.tgz | |
job_type_check: | |
name: Type Check Typescript 3.8 | |
runs-on: ubuntu-latest | |
needs: [job_build, diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
env: | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Download dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: packages/core/dist | |
- name: Download ts3.8 | |
uses: actions/download-artifact@v4 | |
with: | |
name: ts3.8 | |
path: packages/core/ts3.8 | |
- name: Install Global Dependencies | |
run: npm i -g add yalc | |
- name: Type Check | |
working-directory: dev-packages/type-check | |
run: yarn type-check | |
job_circular_dep_check: | |
name: Circular Dependency Check | |
runs-on: ubuntu-latest | |
needs: [job_build, diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Download dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: dist | |
path: packages/core/dist | |
- name: Download Expo Plugin | |
uses: actions/download-artifact@v4 | |
with: | |
name: expo-plugin | |
path: packages/core/plugin/build | |
- name: Run madge | |
run: yarn circularDepCheck | |
job_bundle: | |
name: Bundle | |
runs-on: ubuntu-latest | |
needs: [job_test, job_build, diff_check] | |
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }} | |
strategy: | |
# we want that the matrix keeps running, default is to cancel them if it fails. | |
fail-fast: false | |
matrix: | |
platform: ['ios', 'android'] | |
dev: [true, false] | |
steps: | |
- uses: actions/checkout@v4 | |
- run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
cache-dependency-path: yarn.lock | |
- name: Install Dependencies | |
run: yarn install | |
- name: Build | |
run: yarn build | |
- name: Make Sample Build Directory | |
run: mkdir build | |
working-directory: samples/react-native | |
- name: Bundle | |
run: | | |
yarn run react-native bundle \ | |
--entry-file index.js \ | |
--platform ${{ matrix.platform }} \ | |
--dev ${{ matrix.dev }} \ | |
--reset-cache \ | |
--bundle-output build/bundle.${{ matrix.platform }}.js \ | |
--sourcemap-output build/bundle.${{ matrix.platform }}.map | |
working-directory: samples/react-native |