Repository navigation
155 lines (128 loc) · 4.07 KB
/
Copy pathci.yml
File metadata and controls
155 lines (128 loc) · 4.07 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
145
146
147
148
149
150
151
152
153
154
155
name: CI
on:
push:
branches:
- main
pull_request:
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
UV_LOCKED: "1"
defaults:
run:
shell: nix develop --command bash -eo pipefail {0}
jobs:
nix-lint:
uses: furedea/reusable-workflows/.github/workflows/nix-lint.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions:
contents: read
lint:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Nix
uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0
- name: Run ruff check
run: uv run ruff check
- name: Run ruff format
run: uv run ruff format --check
typecheck:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Nix
uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0
- name: Run ty
run: uv run ty check
test:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Nix
uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0
- name: Run tests
run: uv run pytest --cov
audit:
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Nix
uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0
- name: Run deptry
run: uv run --group audit deptry .
- name: Run vulture
run: uv run --group audit vulture
- name: Run uv audit
run: uv audit --preview-features audit
gha-lint:
uses: furedea/reusable-workflows/.github/workflows/gha-lint.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions:
actions: read
contents: read
dependency-review:
uses: furedea/reusable-workflows/.github/workflows/dependency-review.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions:
contents: read
nix-check:
uses: furedea/reusable-workflows/.github/workflows/nix-check.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions:
contents: read
claude-review:
uses: furedea/reusable-workflows/.github/workflows/claude-review.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions:
contents: read
pull-requests: write
secrets:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
codex-review:
uses: furedea/reusable-workflows/.github/workflows/codex-review.yml@ca7c5f2973a899e209bc60767f434aecbc186bc9 # v1.1.0
permissions: {}
secrets:
codex_review_token: ${{ secrets.CODEX_REVIEW_TOKEN }}
all-green:
if: always()
needs:
- nix-lint
- lint
- typecheck
- test
- audit
- gha-lint
- dependency-review
- nix-check
- claude-review
- codex-review
runs-on: ubuntu-latest
timeout-minutes: 1
permissions: {}
steps:
- name: Fail if any prerequisite did not succeed
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped')
shell: bash
run: exit 1