-
Notifications
You must be signed in to change notification settings - Fork 47
134 lines (106 loc) · 4.05 KB
/
ci.yml
File metadata and controls
134 lines (106 loc) · 4.05 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
name: Check
on:
push:
branches: [main]
pull_request:
merge_group:
jobs:
yarn:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
- run: yarn
env:
# https://yarnpkg.com/features/security#hardened-mode
YARN_ENABLE_HARDENED_MODE: 1
biome:
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
- run: yarn
- run: yarn turbo check-biome check-prettier
eslint:
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
- run: yarn
- run: yarn turbo check-eslint
typescript:
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
- run: yarn
- run: yarn turbo check-svelte check-typescript
test:
runs-on: ubuntu-latest
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version-file: .tool-versions
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
{plugins,packages}/*/src/**
{plugins,packages}/*/test/**
{plugins,packages}/*/*.test.ts
{plugins,packages}/*/*.test.tsx
{plugins,packages}/*/vitest.config.ts
{plugins,packages}/*/test-setup.ts
- name: Install dependencies
if: steps.changed-files.outputs.any_changed == 'true'
run: yarn
- name: Test scripts
if: steps.changed-files.outputs.any_changed == 'true'
run: yarn run test:scripts
- name: Get changed workspaces
if: steps.changed-files.outputs.any_changed == 'true'
id: changed-workspaces
run: |
# Extract unique workspace paths from changed files
WORKSPACES=$(echo "${{ steps.changed-files.outputs.all_changed_files }}" | \
grep -oE '(plugins|packages)/[^/]+' | \
sort -u | \
tr '\n' ' ')
echo "workspaces=$WORKSPACES" >> $GITHUB_OUTPUT
echo "Changed workspaces: $WORKSPACES"
- name: Run tests for changed workspaces
if: steps.changed-files.outputs.any_changed == 'true' && steps.changed-workspaces.outputs.workspaces != ''
run: |
for workspace in ${{ steps.changed-workspaces.outputs.workspaces }}; do
echo "Checking tests for workspace: $workspace"
if [ -f "$workspace/package.json" ] && grep -q '"check-vitest"' "$workspace/package.json"; then
name=$(jq -r '.name' "$workspace/package.json")
yarn workspace "$name" check-vitest
else
echo "No check-vitest script found for $workspace, skipping..."
fi
done