1name: Native Component List app
2
3on:
4  workflow_dispatch: {}
5  pull_request:
6    paths:
7      - .github/workflows/native-component-list.yml
8      - apps/native-component-list/**
9      - packages/**
10      - yarn.lock
11      - '!packages/@expo/cli/**'
12  push:
13    branches: [main]
14    paths:
15      - .github/workflows/native-component-list.yml
16      - apps/native-component-list/**
17      - packages/**
18      - yarn.lock
19      - '!packages/@expo/cli/**'
20
21concurrency:
22  group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
23  cancel-in-progress: true
24
25jobs:
26  build:
27    runs-on: ubuntu-22.04
28    steps:
29      - name: �� Checkout
30        uses: actions/checkout@v3
31        with:
32          submodules: true
33      - name: ⬢ Setup Node
34        uses: actions/setup-node@v3
35        with:
36          node-version: 16
37      - name: ♻️ Restore caches
38        uses: ./.github/actions/expo-caches
39        id: expo-caches
40        with:
41          yarn-workspace: 'true'
42          yarn-tools: 'true'
43      - name: �� Install workspace node modules
44        if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
45        run: yarn install --frozen-lockfile
46      - name: �� Compile NCL sources
47        run: yarn tsc
48        working-directory: apps/native-component-list
49      - name: �� Lint NCL app
50        run: yarn lint --max-warnings 0
51        working-directory: apps/native-component-list
52      - name: �� Notify on Slack
53        uses: 8398a7/action-slack@v3
54        if: failure() && (github.event.ref == 'refs/heads/main')
55        env:
56          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57          SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_api }}
58        with:
59          channel: '#expo-sdk'
60          status: ${{ job.status }}
61          fields: job,message,ref,eventName,author,took
62          author_name: Build Native Component List
63