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    paths-ignore:
12      # Ignore Expo CLI for now...
13      - packages/expo/cli/**
14      - packages/expo/bin/**
15      - packages/expo/e2e/**
16  push:
17    branches: [main]
18    paths:
19      - .github/workflows/native-component-list.yml
20      - apps/native-component-list/**
21      - packages/**
22      - yarn.lock
23    paths-ignore:
24      # Ignore Expo CLI for now...
25      - packages/expo/cli/**
26      - packages/expo/bin/**
27      - packages/expo/e2e/**
28
29concurrency:
30  group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
31  cancel-in-progress: true
32
33jobs:
34  build:
35    runs-on: ubuntu-18.04
36    steps:
37      - uses: actions/checkout@v2
38        with:
39          submodules: true
40      - uses: actions/setup-node@v2
41        with:
42          node-version: '14.17'
43      - name: Get yarn cache directory path
44        id: yarn-cache-dir-path
45        run: echo "::set-output name=dir::$(yarn cache dir)"
46      - uses: actions/cache@v2
47        with:
48          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
49          key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
50          restore-keys: |
51            ${{ runner.os }}-yarn-
52      - run: yarn install --frozen-lockfile
53      - run: yarn tsc
54        working-directory: apps/native-component-list
55      - run: yarn lint --max-warnings 0
56        working-directory: apps/native-component-list
57      - name: �� Notify on Slack
58        uses: 8398a7/action-slack@v3
59        if: failure() && (github.event.ref == 'refs/heads/main')
60        env:
61          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62          SLACK_WEBHOOK_URL: ${{ secrets.slack_webhook_api }}
63        with:
64          channel: '#expo-sdk'
65          status: ${{ job.status }}
66          fields: job,message,ref,eventName,author,took
67          author_name: Build Native Component List
68