-
Notifications
You must be signed in to change notification settings - Fork 103
158 lines (123 loc) · 4.14 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
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
name: Test
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run tests
run: go test -v -tags integration -race -coverprofile=coverage.txt ./...
- name: Upload coverage reports to Codecov
if: >
!startsWith(github.head_ref, 'renovate/') &&
!startsWith(github.head_ref, 'release-please--')
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
kubernetes:
name: kubernetes ${{ matrix.k3s }}
runs-on: ubuntu-latest
permissions:
id-token: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.k3s }}
cancel-in-progress: true
strategy:
fail-fast: false # Continue tests matrix if a flaky run occur.
matrix:
include:
- k3s: v1.27
k8s-test: v1.27.15
- k3s: v1.28
k8s-test: v1.28.11
- k3s: v1.29
k8s-test: v1.29.6
- k3s: v1.30
k8s-test: v1.30.2
env:
K3S_CHANNEL: ${{ matrix.k3s }}
K8S_TEST_VERSION: ${{ matrix.k8s-test }}
ENV: gha-${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.k3s }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: opentofu/setup-opentofu@v1
with:
tofu_version: v1.8.1 # renovate: datasource=github-releases depName=opentofu/opentofu
tofu_wrapper: false
- uses: docker/setup-buildx-action@v3
- uses: yokawasa/[email protected]
with:
setup-tools: |
helm
kubectl
skaffold
helm: v3.15.4 # renovate: datasource=github-releases depName=helm/helm
kubectl: v1.31.0 # renovate: datasource=github-releases depName=kubernetes/kubernetes
skaffold: v2.13.2 # renovate: datasource=github-releases depName=GoogleContainerTools/skaffold
- name: Setup k3sup
run: curl -sLS https://get.k3sup.dev | sh
- name: Setup k8s test binaries
run: make -C test/e2e/kubernetes bin
- uses: hetznercloud/tps-action@main
- name: Setup environment
run: make -C dev up
- name: Run skaffold
run: |
source dev/files/env.sh
skaffold run
- name: Run parallel tests
run: |
source dev/files/env.sh
make -C test/e2e/kubernetes parallel
- name: Run serial tests
run: |
source dev/files/env.sh
make -C test/e2e/kubernetes serial
- name: Cleanup
if: always()
continue-on-error: true
run: make -C dev down
deploy-manifests:
runs-on: ubuntu-latest
steps:
- uses: yokawasa/[email protected]
with:
setup-tools: |
helm
helm: v3.15.4 # renovate: datasource=github-releases depName=helm/helm
- uses: actions/checkout@v4
- name: Generate manifests from helm chart
run: hack/update-deployment-yamls.sh
- name: Check for diff
run: git diff --exit-code -- deploy/
- name: Show warning
if: failure()
run: echo "::error title=Deployment Manifests outdated::Please run hack/update-deployment-yamls.sh and commit the changes to deploy/"
helm-chart:
runs-on: ubuntu-latest
steps:
- uses: yokawasa/[email protected]
with:
setup-tools: |
helm
helm: v3.15.4 # renovate: datasource=github-releases depName=helm/helm
- uses: actions/checkout@v4
# This step also verifies that the chart builds
- name: Verify Snapshots
run: |
hack/update-helm-snapshots.sh
git diff --exit-code -- deploy/
- name: Show warning
if: failure()
run: echo "::error title=Helm Snapshots outdated::Please run hack/update-helm-snapshots.sh and commit the changes to chart/.snapshots/"
- name: Helm Lint
run: helm lint chart/