-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (112 loc) · 3.74 KB
/
ci.yml
File metadata and controls
132 lines (112 loc) · 3.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: CI
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
jobs:
lint_and_check:
name: 🧹 Lint & Type Check
runs-on: ubuntu-latest
permissions:
contents: read # Needed for checkout
checks: write # Needed for reviewdog to post results
pull-requests: write # Needed for reviewdog github-pr-review reporter (optional)
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
steps:
- name: ⬇️ Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: 🅿️ Setup pnpm
uses: pnpm/action-setup@v4
- name: 🟢 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: 📦 Install dependencies
run: pnpm install --frozen-lockfile
- name: 👀 Type Check
run: pnpm turbo run check-types
- name: 🧹 Run Biome with Reviewdog
uses: mongolyy/reviewdog-action-biome@v2.1.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check # Report results as checks
level: warning # Report errors
build:
name: 🏗️ Build Packages
runs-on: ubuntu-latest
permissions:
contents: read # Needed for checkout
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
steps:
- name: ⬇️ Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: 🅿️ Setup pnpm
uses: pnpm/action-setup@v4
- name: 🟢 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: 📦 Install dependencies
run: pnpm install --frozen-lockfile
- name: 🏗️ Build
run: pnpm turbo run build --filter="./packages/*"
test:
name: 🧪 Run Tests & Coverage
needs: build # Run only after build succeeds
runs-on: ubuntu-latest
permissions:
contents: read # Needed for checkout
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
steps:
- name: ⬇️ Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: 🅿️ Setup pnpm
uses: pnpm/action-setup@v4
- name: 🟢 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: 📦 Install dependencies
run: pnpm install --frozen-lockfile
- name: 🎭 Cache Playwright browsers
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-browsers-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
playwright-browsers-${{ runner.os }}-
- name: 🎭 Install Playwright browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: pnpm exec playwright install
- name: 🧪 Run Tests
run: pnpm turbo run test
- name: ⬆️ Upload Individual Coverage Reports
uses: actions/upload-artifact@v4
with:
name: individual-coverage-data # Artifact containing all raw reports
path: |
packages/*/coverage/coverage-summary.json
packages/*/coverage/coverage-final.json
apps/*/coverage/coverage-summary.json
apps/*/coverage/coverage-final.json
# Add other potential locations if necessary
retention-days: 7
# Optional: Handle case where no files are found gracefully
if-no-files-found: warn # 'warn', 'error', or 'ignore'