forked from k0sproject/k0smotron
-
Notifications
You must be signed in to change notification settings - Fork 0
159 lines (134 loc) · 3.73 KB
/
go.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
name: Go build
on:
push:
branches:
- main
- release-*
paths-ignore:
- 'config/**'
- 'docs/**'
- 'mkdocs.yml'
- '**.md'
- LICENSE
- '**.svg'
pull_request:
branches:
- main
- release-*
paths-ignore:
- 'config/**'
- 'docs/**'
- 'mkdocs.yml'
- '**.md'
- LICENSE
- '**.svg'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
with:
fetch-depth: 0 # for `git describe`
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.20.3'
- name: Build
run: |
make build
- name: Build image
run: |
make docker-build
unittest:
name: Unit test
needs: build
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Run unit tests
run: |
make test
smoketest:
name: Smoke test
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
smoke-suite:
- check-basic
- check-hostpath
- check-ha-controller
- check-ha-controller-secret
- check-jointoken
- check-monitoring
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Create image bundle
run: |
make release
make k0smotron-image-bundle.tar
- name: Run inttest
run: |
make -C inttest ${{ matrix.smoke-suite }}
capi-smokes:
name: Cluster API smoke tests
needs: build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
smoke-suite:
- check-capi-docker
- check-capi-docker-machinedeployment
- check-capi-controlplane-docker
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Create image bundle
run: |
make release
make k0smotron-image-bundle.tar
- name: Create kind network with IPv4 only
run: |
docker network create kind --opt com.docker.network.bridge.enable_ip_masquerade=true
- name: Download kind
uses: supplypike/setup-bin@v3
with:
name: kind
version: v0.19.0
uri: https://github.com/kubernetes-sigs/kind/releases/download/v0.19.0/kind-linux-amd64
- name: Setup KinD cluster
run: |
kind create cluster --config config/samples/capi/docker/kind.yaml
- name: Load k0smotron image to KinD and install k0smotron controllers
run: |
kind load image-archive k0smotron-image-bundle.tar
kubectl apply -f install.yaml
- name: Download clusterctl
uses: supplypike/setup-bin@v3
with:
name: clusterctl
version: v1.4.3
uri: https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.4.3/clusterctl-linux-amd64
- name: Install cluster api components
run: |
clusterctl init --infrastructure docker
- name: Run inttest for CAPI with docker provider
run: |
kind get kubeconfig > kind.conf
export KUBECONFIG=$(realpath kind.conf)
KEEP_AFTER_TEST=true make -C inttest ${{ matrix.smoke-suite }}