-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (115 loc) · 2.97 KB
/
Copy pathci.yml
File metadata and controls
144 lines (115 loc) · 2.97 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
133
134
135
136
137
138
139
140
141
142
143
144
name: CI
permissions:
contents: read
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Check formatting
run: pnpm format --check
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run linter
run: pnpm lint
typecheck:
name: Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run type check
run: pnpm typecheck
knip:
name: Knip
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run knip
run: pnpm exec knip --reporter github-actions
test:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run tests
run: pnpm test -- --coverage --reporter=default --reporter=github-actions
- name: Upload Coverage Report
if: always()
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: ./**/coverage/
retention-days: 30
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run build
run: pnpm build
security-audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Run security audit
run: pnpm audit --audit-level=high
bundle-size:
name: Bundle Size
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Setup
uses: ./.github/actions/setup
- name: Build packages
run: pnpm build
- name: Report bundle sizes
run: |
echo "## Bundle Sizes" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Package | Size |" >> $GITHUB_STEP_SUMMARY
echo "|---------|------|" >> $GITHUB_STEP_SUMMARY
for pkg in packages/*/dist; do
if [ -d "$pkg" ]; then
size=$(du -sh "$pkg" 2>/dev/null | cut -f1)
name=$(basename $(dirname "$pkg"))
echo "| $name | $size |" >> $GITHUB_STEP_SUMMARY
fi
done