xref: /expo/.github/workflows/cli.yml (revision 82452ed9)
1name: CLI
2
3on:
4  push:
5    branches: [main, 'sdk-*']
6    paths:
7      - .github/workflows/cli.yml
8      - packages/@expo/cli/**
9      - packages/@expo/metro-runtime/**
10      - packages/@expo/metro-config/**
11      - packages/@expo/fingerprint/**
12      - packages/create-expo/**
13      - packages/expo-router/**
14      - yarn.lock
15  pull_request:
16    paths:
17      - .github/workflows/cli.yml
18      - packages/@expo/cli/**
19      - packages/@expo/metro-runtime/**
20      - packages/@expo/metro-config/**
21      - packages/@expo/fingerprint/**
22      - packages/create-expo/**
23      - packages/expo-router/**
24      - yarn.lock
25  schedule:
26    - cron: 0 14 * * *
27
28concurrency:
29  group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
30  cancel-in-progress: true
31
32jobs:
33  test:
34    runs-on: ubuntu-22.04
35    steps:
36      - name: �� Checkout
37        uses: actions/checkout@v3
38        with:
39          fetch-depth: 100
40      - name: ⬇️ Fetch commits from base branch
41        run: git fetch origin ${{ github.event.before || github.base_ref || 'main' }}:${{ github.event.before || github.base_ref || 'main' }} --depth 100
42        if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
43      - name: ♻️ Restore caches
44        uses: ./.github/actions/expo-caches
45        id: expo-caches
46        with:
47          yarn-workspace: 'true'
48      - name: �� Install node modules in root dir
49        if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
50        run: yarn install --frozen-lockfile
51      - name: �� Type Check CLI
52        run: yarn typecheck
53        working-directory: packages/@expo/cli
54      - name: �� Build CLI
55        run: yarn prepare
56        working-directory: packages/@expo/cli
57      - name: E2E Test CLI
58        run: yarn test:e2e
59        working-directory: packages/@expo/cli
60      - name: E2E Test @expo/fingerprint
61        run: yarn test:e2e
62        working-directory: packages/@expo/fingerprint
63      # - name: �� Notify on Slack
64      #   uses: 8398a7/action-slack@v3
65      #   if: failure() && (github.event.ref == 'refs/heads/main' || startsWith(github.event.ref, 'refs/heads/sdk-'))
66      #   env:
67      #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68      #     SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_api }}
69      #   with:
70      #     channel: '#expo-cli'
71      #     status: ${{ job.status }}
72      #     fields: job,message,ref,eventName,author,took
73      #     author_name: Check packages
74