A social knowledge tool for researchers built on ATProto
1name: Lint and Format Check
2
3on:
4 push:
5 branches: [main, development]
6 pull_request:
7 branches: [main, development]
8
9jobs:
10 dependencies:
11 name: Install Dependencies
12 runs-on: ubuntu-latest
13 outputs:
14 cache-hit: ${{ steps.cache-deps.outputs.cache-hit }}
15 steps:
16 - name: Checkout code
17 uses: actions/checkout@v4
18
19 - name: Setup Node.js
20 uses: actions/setup-node@v4
21 with:
22 node-version: '20'
23
24 - name: Cache dependencies
25 id: cache-deps
26 uses: actions/cache@v4
27 with:
28 path: |
29 node_modules
30 src/webapp/node_modules
31 src/types/node_modules
32 key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }}
33 restore-keys: |
34 ${{ runner.os }}-deps-
35
36 - name: Install dependencies
37 if: steps.cache-deps.outputs.cache-hit != 'true'
38 run: npm ci
39
40 format-check:
41 name: Format Check
42 runs-on: ubuntu-latest
43 needs: dependencies
44 steps:
45 - name: Checkout code
46 uses: actions/checkout@v4
47
48 - name: Setup Node.js
49 uses: actions/setup-node@v4
50 with:
51 node-version: '20'
52
53 - name: Restore dependencies
54 uses: actions/cache@v4
55 with:
56 path: |
57 node_modules
58 src/webapp/node_modules
59 src/types/node_modules
60 key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }}
61
62 - name: Install dependencies (if cache miss)
63 run: |
64 if [ ! -d "node_modules" ]; then
65 npm ci
66 fi
67
68 - name: Check formatting
69 run: npm run format:check
70
71 lint:
72 name: Lint
73 runs-on: ubuntu-latest
74 needs: dependencies
75 steps:
76 - name: Checkout code
77 uses: actions/checkout@v4
78
79 - name: Setup Node.js
80 uses: actions/setup-node@v4
81 with:
82 node-version: '20'
83
84 - name: Restore dependencies
85 uses: actions/cache@v4
86 with:
87 path: |
88 node_modules
89 src/webapp/node_modules
90 src/types/node_modules
91 key: ${{ runner.os }}-deps-${{ hashFiles('package-lock.json') }}
92
93 - name: Install dependencies (if cache miss)
94 run: |
95 if [ ! -d "node_modules" ]; then
96 npm ci
97 fi
98
99 - name: Lint root
100 run: npm run lint
101
102 - name: Lint webapp
103 run: cd src/webapp && npm run lint