-
Notifications
You must be signed in to change notification settings - Fork 0
146 lines (120 loc) · 3.25 KB
/
go.yaml
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
name: Go
on:
push:
branches:
- main
pull_request:
jobs:
# Vet Go code
vet-go:
name: Vet Go code
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout repo
uses: actions/[email protected]
with:
submodules: recursive
- name: Set up Go
uses: actions/[email protected]
with:
go-version-file: go.mod
check-latest: true
- name: Vet Go code
run: go vet ./...
# Test with Go
test-go:
name: Test with Go
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
go-version: ["1.21"]
steps:
- name: Checkout repo
uses: actions/[email protected]
with:
submodules: recursive
- name: Set up Go
uses: actions/[email protected]
with:
go-version: ^${{ matrix.go-version }}
check-latest: true
- name: Run Go tests
run: go test -v -bench . ./...
- name: Run Go tests with race detector
run: go test -v -race ./...
- name: Test Go without cgo
env:
CGO_ENABLED: 0
run: go test -v ./...
- name: Verify repo is unchanged
run: git diff --exit-code HEAD
# Test with TinyGo
test-tinygo:
name: Test with TinyGo
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
version: ["0.30.0"]
steps:
- name: Checkout repo
uses: actions/[email protected]
with:
submodules: recursive
- name: Set up Go
uses: actions/[email protected]
with:
go-version: ^1
check-latest: true
- name: Set up TinyGo
uses: acifani/[email protected]
with:
tinygo-version: ${{ matrix.version }}
- name: Test with TinyGo
run: tinygo test -v -bench . ./...
- name: Verify repo is unchanged
run: git diff --exit-code HEAD
# Test with WebAssembly
test-wasm:
name: Test with WebAssembly
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
go-version: ["1.21"] # WASI Preview 1 only available in Go 1.21 or later
tinygo-version: ["0.30.0"]
wasmtime-version: ["v14.0.4", "v15.0.0"]
steps:
- name: Checkout repo
uses: actions/[email protected]
with:
submodules: recursive
- name: Set up Go
uses: actions/[email protected]
with:
go-version: ^${{ matrix.go-version }}
check-latest: true
- name: Set up TinyGo
uses: acifani/[email protected]
with:
tinygo-version: ${{ matrix.tinygo-version }}
- name: Set up Wasmtime
uses: bytecodealliance/actions/wasmtime/[email protected]
with:
version: ${{ matrix.wasmtime-version }}
- name: Add Go wasm exec to $PATH
run: echo "$(go env GOROOT)/misc/wasm" >> $GITHUB_PATH
- name: Test WebAssembly with Go + Wasmtime
env:
GOOS: wasip1
GOARCH: wasm
run: go test -v ./...
- name: Test WebAssembly with TinyGo + Wasmtime
env:
GOOS: wasip1
GOARCH: wasm
run: tinygo test -v ./...
- name: Verify repo is unchanged
run: git diff --exit-code HEAD