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