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