-
Notifications
You must be signed in to change notification settings - Fork 18
144 lines (136 loc) · 3.47 KB
/
build.yml
File metadata and controls
144 lines (136 loc) · 3.47 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
name: Build
on:
push:
paths-ignore:
- '.gitignore'
- '**/*.md'
- '**/*.txt'
- '**/*.sh'
- '**/*.gif'
- '**/*.png'
- '**/*.svg'
- '**/*.jpg'
pull_request:
paths-ignore:
- '.gitignore'
- '**/*.md'
- '**/*.txt'
- '**/*.sh'
- '**/*.gif'
- '**/*.png'
- '**/*.svg'
- '**/*.jpg'
jobs:
ubuntu:
strategy:
fail-fast: false
matrix:
go-version: ["1.25", "1.26"]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
- name: Build
run: cd v2 && go build -mod=vendor
- name: Test
run: cd v2 && go test
- name: Vet
run: cd v2 && go vet ./...
macos:
strategy:
fail-fast: false
matrix:
go-version: ["1.25", "1.26"]
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
- name: Build
run: cd v2 && go build -mod=vendor
- name: Test
run: cd v2 && go test
- name: Vet
run: cd v2 && go vet ./...
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: "1.26"
- name: Build
run: cd v2 && go build -mod=vendor
- name: Test
run: cd v2 && go test
- name: Vet
run: cd v2 && go vet ./...
freebsd:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: Build and test on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: pkg install -y go
run: |
cd v2
go build -mod=vendor
go test
go vet ./...
openbsd:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: Build and test on OpenBSD
uses: vmactions/openbsd-vm@v1
with:
usesh: true
prepare: pkg_add go
run: |
cd v2
go build -mod=vendor
go test
go vet ./...
vhs-validate:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: Install vhs
run: |
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt-get update && sudo apt-get install -y vhs
- name: Validate tape files
run: |
cd rec
for tape in *.tape; do
echo "Validating $tape"
vhs validate "$tape"
done
netbsd:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- name: Build and test on NetBSD
uses: vmactions/netbsd-vm@v1
with:
usesh: true
prepare: /usr/sbin/pkg_add wget gtar-base
run: |
set -eu
GOGZ="go1.25.8.netbsd-amd64.tar.gz"
wget -q https://go.dev/dl/${GOGZ}
mkdir -p /tmp/goinstall
gtar xzf ${GOGZ} -C /tmp/goinstall
rm ${GOGZ}
export PATH=/tmp/goinstall/go/bin:$PATH
cd v2
go build -mod=vendor
go test
go vet ./...