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