-
Notifications
You must be signed in to change notification settings - Fork 63
165 lines (141 loc) · 3.76 KB
/
validate.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
name: validate
on:
push:
tags:
- v*
branches:
- master
pull_request:
jobs:
commit:
runs-on: ubuntu-22.04
# Only check commits on pull requests.
if: github.event_name == 'pull_request'
steps:
- name: get pr commits
id: 'get-pr-commits'
uses: tim-actions/[email protected]
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: check subject line length
uses: tim-actions/[email protected]
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
pattern: '^.{0,72}(\n.*)*$'
error: 'Subject too long (max 72)'
lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: 1.22.x
- uses: golangci/golangci-lint-action@v6
with:
version: v1.61
codespell:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: install deps
# Version of codespell bundled with Ubuntu is way old, so use pip.
run: pip install codespell
- name: run codespell
run: codespell
cross:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: cross
run: make build-cross
test-stubs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: 1.22.x
- uses: golangci/golangci-lint-action@v6
with:
version: v1.61
- name: test-stubs
run: make test
test:
strategy:
fail-fast: false
matrix:
go-version: [1.21.x, 1.22.x, 1.23.x]
race: ["-race", ""]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: install go ${{ matrix.go-version }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: build
run: make BUILDFLAGS="${{ matrix.race }}" build
- name: test
run: make TESTFLAGS="${{ matrix.race }}" test
- name: test 32-bit
if: ${{ matrix.race }} == "" # -race is not supported on linux/386
run: make GOARCH=386 test
test-actuated:
runs-on: actuated-arm64-6cpu-8gb
steps:
# https://gist.github.com/alexellis/1f33e581c75e11e161fe613c46180771#file-metering-gha-md
# vmmeter start
- name: Prepare arkade
uses: alexellis/arkade-get@master
with:
crane: latest
print-summary: false
- name: Install vmmeter
run: |
crane export --platform linux/arm64 ghcr.io/openfaasltd/vmmeter:latest | sudo tar -xvf - -C /usr/local/bin
- name: Run vmmeter
uses: self-actuated/vmmeter-action@master
# vmmeter end
- uses: actions/checkout@v4
- name: enable selinux
run: |
sudo apt update
sudo apt install -y policycoreutils selinux-basics selinux-utils
sudo selinux-activate
#------------
sestatus
#------------
- name: host info
run: |
set -x
# Sync `set -x` outputs with command ouputs
exec 2>&1
# Version
uname -a
cat /etc/os-release
# SELinux
sestatus
- name: install Go
uses: actions/setup-go@v5
with:
go-version: 1.23.x
- name: build
run: make build
- name: test
run: make test
- name: test -race
run: make TESTFLAGS="-race" test
- name: test 32-bit
run: make GOARCH=arm test
all-done:
needs:
- commit
- lint
- codespell
- cross
- test-stubs
- test
- test-actuated
runs-on: ubuntu-22.04
steps:
- run: echo "All jobs completed"