Skip to content

fix(test): Flaky E2E Android Metrics App Start Time #10337

fix(test): Flaky E2E Android Metrics App Start Time

fix(test): Flaky E2E Android Metrics App Start Time #10337

Workflow file for this run

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