-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (129 loc) · 4.03 KB
/
Copy pathtest.yml
File metadata and controls
131 lines (129 loc) · 4.03 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
name: Test
on:
push:
branches-ignore:
- main
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
govulncheck:
name: govulncheck
runs-on: ubuntu-24.04
permissions:
contents: read # Required to clone the repo
steps:
- name: Harden the runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
- name: govulncheck
run: |
go tool govulncheck ./...
pinact-verify:
name: Verify GitHub Actions versions
runs-on: ubuntu-24.04
permissions:
contents: read # Required to clone the repo
steps:
- name: Harden the runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
- name: pinact run --verify
run: |
go tool pinact run --verify .github/workflows/*.yml
fmt-test:
name: fmt and test
runs-on: ubuntu-24.04
permissions:
contents: read # Required to clone the repo
steps:
- name: Harden the runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
- name: go fmt
run: |
test -z "$(go fmt)"
- name: go test
run: |
go test
fuzz:
name: 10s fuzz test
runs-on: ubuntu-24.04
continue-on-error: true
permissions:
contents: read # Required to clone the repo
steps:
- name: Harden the runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod
- name: go fuzz
run: |
go test -fuzz=FuzzTemplatefile -fuzztime=10s
- name: Collect any new fuzz corpora
id: corpus
if: failure()
run: |
{
printf '%s\n' 'paths<<EOF'
git ls-files --others --exclude-standard -- testdata/fuzz/
printf '%s\n' 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Upload fuzz failure corpora
if: failure() && steps.corpus.outputs.paths != ''
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: fuzz-failure-corpus
path: ${{ steps.corpus.outputs.paths }}
retention-days: 14
no-more-jobs:
name: No more jobs
runs-on: ubuntu-24.04
needs:
- govulncheck
- pinact-verify
- fmt-test
- fuzz
steps:
- name: Harden the runner
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- name: 😴
run: printf '%s\n' 'No more jobs!'