-
Notifications
You must be signed in to change notification settings - Fork 16
131 lines (111 loc) · 3.38 KB
/
test.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
on:
push:
branches:
- main
pull_request:
types: [opened, reopened, synchronize]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
name: Test
jobs:
acceptance-tests:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
go-version:
- "1.21"
- "1.22"
incus-version:
- daily
- stable
env:
TF_ACC: "1"
GO111MODULE: "on"
INCUS_REMOTE: local
INCUS_ADDR: localhost
INCUS_PORT: 8443
INCUS_GENERATE_CLIENT_CERTS: "true"
INCUS_ACCEPT_SERVER_CERTIFICATE: "true"
INCUS_SCHEME: https
steps:
- uses: actions/checkout@v4
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Setup Incus from ${{ matrix.incus-version }} repository
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --yes \
zfsutils-linux \
bind9-dnsutils \
jq
sudo apt-get remove --purge uidmap --yes
sudo rm -f /etc/subuid /etc/subgid
curl -sL https://pkgs.zabbly.com/get/incus-${{ matrix.incus-version }} | sudo sh
sudo chmod 666 /var/lib/incus/unix.socket
sudo incus admin init --auto --network-port="$INCUS_PORT" --network-address="$INCUS_ADDR"
INCUS_TOKEN=$(incus config trust add terraform --quiet)
incus remote add localhost "${INCUS_TOKEN}"
incus remote add docker https://docker.io --protocol=oci
- name: Configure OVN
run: |
sudo apt-add-repository ppa:stgraber/ovn-stable --yes
sudo apt-get update
sudo apt-get install --no-install-recommends --yes \
ovn-host \
ovn-central
sudo ovs-vsctl set open_vswitch . \
external_ids:ovn-remote=unix:/var/run/ovn/ovnsb_db.sock \
external_ids:ovn-encap-type=geneve \
external_ids:ovn-encap-ip=127.0.0.1
sudo systemctl restart incus
- name: Install dependencies
run: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
- uses: hashicorp/setup-terraform@v3
with:
terraform_wrapper: false
- run: |
make test
build-platforms:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
go-version:
- "1.21"
- "1.22"
steps:
- uses: actions/checkout@v4
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Run GoReleaser in build mode to test all release platforms
uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: build --snapshot
check-lint:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
go-version:
- "1.21"
- "1.22"
steps:
- uses: actions/checkout@v4
- name: Setup Go ${{ matrix.go-version }}
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- run: make fmtcheck
- run: make vet
- run: make static-analysis