-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (117 loc) · 3.62 KB
/
ci.yml
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
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
types:
- opened
- reopened
- synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
paths-filter:
name: Changed Paths Filter
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: read
timeout-minutes: 5
outputs:
astro: ${{ steps.filter.outputs.astro }}
root: ${{ steps.filter.outputs.root }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: filter
with:
filters: |
astro:
- 'packages/sushichan.live/**'
root:
- '*'
eslint:
name: ESLint
needs: paths-filter
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js and pnpm
uses: ./.github/common/setup-node-pnpm
- name: Run ESLint on Astro
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
run: pnpm run --filter=sushichan.live lint:check
tsc:
name: tsc
needs: paths-filter
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js and pnpm
uses: ./.github/common/setup-node-pnpm
- name: Run tsc on Astro
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
run: pnpm run --filter=sushichan.live typecheck
prettier:
name: Prettier
needs: paths-filter
if: ${{ needs.paths-filter.outputs.astro == 'true' || needs.paths-filter.outputs.root == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 5
permissions:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js and pnpm
uses: ./.github/common/setup-node-pnpm
- name: Run Prettier on Astro
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
run: pnpm run --filter=sushichan.live format:check
- name: Run Prettier on Root
if: ${{ needs.paths-filter.outputs.root == 'true' }}
run: pnpm run format:check
vitest:
name: Vitest
needs: paths-filter
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 15
permissions:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js and pnpm
uses: ./.github/common/setup-node-pnpm
- name: Run Vitest on Astro
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
run: pnpm run test --project sushichan.live
astro-check:
name: Astro Check
needs: paths-filter
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
runs-on: ubuntu-24.04
timeout-minutes: 5
permissions:
contents: read
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js and pnpm
uses: ./.github/common/setup-node-pnpm
- name: Run Astro Check
if: ${{ needs.paths-filter.outputs.astro == 'true' }}
run: pnpm --filter sushichan.live run check:astro