22
22
- release-*
23
23
24
24
jobs :
25
- # ## Configuration checks ###
26
- helm-lint :
27
- runs-on : ubuntu-latest
28
- steps :
29
- - name : Checkout code
30
- uses : actions/checkout@v4
31
- - name : Install Helm
32
-
33
- id : install
34
- - run : helm lint deployments/gpu-operator/
35
- validate-csv :
36
- runs-on : ubuntu-latest
37
- steps :
38
- - name : Checkout code
39
- uses : actions/checkout@v4
40
- - name : Get Golang version
41
- id : vars
42
- run : |
43
- GOLANG_VERSION=$( grep "GOLANG_VERSION ?=" versions.mk )
44
- echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION ?= }" >> $GITHUB_ENV
45
- - name : Install Go
46
- uses : actions/setup-go@v5
47
- with :
48
- go-version : ${{ env.GOLANG_VERSION }}
49
- - run : make validate-csv
50
- validate-helm-values :
51
- runs-on : ubuntu-latest
52
- steps :
53
- - name : Checkout code
54
- uses : actions/checkout@v4
55
- - name : Get Golang version
56
- id : vars
57
- run : |
58
- GOLANG_VERSION=$( grep "GOLANG_VERSION ?=" versions.mk )
59
- echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION ?= }" >> $GITHUB_ENV
60
- - name : Install Go
61
- uses : actions/setup-go@v5
62
- with :
63
- go-version : ${{ env.GOLANG_VERSION }}
64
- - run : make validate-helm-values
65
-
66
- # ## Golang checks and build ###
67
- go-check :
68
- needs : [helm-lint, validate-csv, validate-helm-values]
69
- runs-on : ubuntu-latest
70
- steps :
71
- - uses : actions/checkout@v4
72
- name : Checkout code
73
- - name : Get Golang version
74
- id : vars
75
- run : |
76
- GOLANG_VERSION=$( grep "GOLANG_VERSION ?=" versions.mk )
77
- GOLANGCI_LINT_VERSION=$( grep "GOLANGCI_LINT_VERSION ?=" versions.mk )
78
- echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION ?= }" >> $GITHUB_ENV
79
- echo "GOLANGCI_LINT_VERSION=${GOLANGCI_LINT_VERSION##GOLANGCI_LINT_VERSION ?= }" >> $GITHUB_ENV
80
- - name : Install Go
81
- uses : actions/setup-go@v5
82
- with :
83
- go-version : ${{ env.GOLANG_VERSION }}
84
- - name : Lint
85
- uses : golangci/golangci-lint-action@v6
86
- with :
87
- version : ${{ env.GOLANGCI_LINT_VERSION }}
88
- args : -v --timeout 5m
89
- skip-cache : true
90
- - run : make check
91
- go-test :
92
- needs : [helm-lint, validate-csv, validate-helm-values]
93
- name : unit tests
94
- runs-on : ubuntu-latest
95
- steps :
96
- - name : Checkout code
97
- uses : actions/checkout@v4
98
- - name : Get Golang version
99
- id : vars
100
- run : |
101
- GOLANG_VERSION=$( grep "GOLANG_VERSION ?=" versions.mk )
102
- echo "GOLANG_VERSION=${GOLANG_VERSION##GOLANG_VERSION ?= }" >> $GITHUB_ENV
103
- - name : Install Go
104
- uses : actions/setup-go@v5
105
- with :
106
- go-version : ${{ env.GOLANG_VERSION }}
107
- - run : make coverage
108
- go-build :
109
- needs : [helm-lint, validate-csv, validate-helm-values]
110
- runs-on : ubuntu-latest
111
- steps :
112
- - uses : actions/checkout@v4
113
- name : Checkout code
114
- - run : make docker-build
115
-
116
- # ## Image builds ###
117
- build-gpu-operator :
118
- needs : [go-check, go-test, go-build]
119
- runs-on : ubuntu-latest
120
- strategy :
121
- matrix :
122
- dist : [ubi9]
123
- steps :
124
- - uses : actions/checkout@v4
125
- name : Check out code
126
- - name : Calculate build vars
127
- id : vars
128
- run : |
129
- echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
130
- echo "LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')" >> $GITHUB_ENV
131
- REPO_FULL_NAME="${{ github.event.pull_request.head.repo.full_name }}"
132
- echo "${REPO_FULL_NAME}"
133
- echo "LABEL_IMAGE_SOURCE=https://github.com/${REPO_FULL_NAME}" >> $GITHUB_ENV
134
-
135
- GENERATE_ARTIFACTS="false"
136
- if [[ "${{ github.actor }}" == "dependabot[bot]" ]]; then
137
- GENERATE_ARTIFACTS="false"
138
- elif [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.head.repo.full_name }}" == "${{ github.repository }}" ]]; then
139
- GENERATE_ARTIFACTS="true"
140
- elif [[ "${{ github.event_name }}" == "push" ]]; then
141
- GENERATE_ARTIFACTS="true"
142
- fi
143
- echo "PUSH_ON_BUILD=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV
144
- echo "BUILD_MULTI_ARCH_IMAGES=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV
145
- - name : Set up QEMU
146
- uses : docker/setup-qemu-action@v3
147
- - name : Set up Docker Buildx
148
- uses : docker/setup-buildx-action@v3
149
- - name : Login to GitHub Container Registry
150
- uses : docker/login-action@v3
151
- with :
152
- registry : ghcr.io
153
- username : ${{ github.actor }}
154
- password : ${{ secrets.GITHUB_TOKEN }}
155
- - name : Build image
156
- env :
157
- IMAGE_NAME : ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator
158
- VERSION : ${COMMIT_SHORT_SHA}
159
- run : |
160
- echo "${VERSION}"
161
- make build-${{ matrix.dist }}
162
- build-gpu-operator-validator :
163
- needs : [go-check, go-test, go-build]
164
- runs-on : ubuntu-latest
165
- strategy :
166
- matrix :
167
- dist : [ubi9]
168
- steps :
169
- - uses : actions/checkout@v4
170
- name : Check out code
171
- - name : Calculate build vars
172
- id : vars
173
- run : |
174
- echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
175
- echo "LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')" >> $GITHUB_ENV
176
- REPO_FULL_NAME="${{ github.event.pull_request.head.repo.full_name }}"
177
- echo "${REPO_FULL_NAME}"
178
- echo "LABEL_IMAGE_SOURCE=https://github.com/${REPO_FULL_NAME}" >> $GITHUB_ENV
179
-
180
- GENERATE_ARTIFACTS="false"
181
- if [[ "${{ github.actor }}" == "dependabot[bot]" ]]; then
182
- GENERATE_ARTIFACTS="false"
183
- elif [[ "${{ github.event_name }}" == "pull_request" && "${{ github.event.pull_request.head.repo.full_name }}" == "${{ github.repository }}" ]]; then
184
- GENERATE_ARTIFACTS="true"
185
- elif [[ "${{ github.event_name }}" == "push" ]]; then
186
- GENERATE_ARTIFACTS="true"
187
- fi
188
- echo "PUSH_ON_BUILD=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV
189
- echo "BUILD_MULTI_ARCH_IMAGES=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV
190
- - name : Set up QEMU
191
- uses : docker/setup-qemu-action@v3
192
- - name : Set up Docker Buildx
193
- uses : docker/setup-buildx-action@v3
194
- - name : Login to GitHub Container Registry
195
- uses : docker/login-action@v3
196
- with :
197
- registry : ghcr.io
198
- username : ${{ github.actor }}
199
- password : ${{ secrets.GITHUB_TOKEN }}
200
- - name : Build image
201
- env :
202
- IMAGE_NAME : ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator/gpu-operator-validator
203
- VERSION : ${COMMIT_SHORT_SHA}
204
- SUBCOMPONENT : validator
205
- run : |
206
- echo "${VERSION}"
207
- make build-${{ matrix.dist }}
208
-
209
25
# ## e2e tests ###
210
- e2e-tests-containerd :
211
- needs : [build-gpu-operator, build-gpu-operator-validator]
212
- runs-on : linux-amd64-cpu4
213
- steps :
214
- - uses : actions/checkout@v4
215
- name : Check out code
216
- - name : Set up Holodeck
217
-
218
- with :
219
- aws_access_key_id : ${{ secrets.AWS_ACCESS_KEY_ID }}
220
- aws_secret_access_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
221
- aws_ssh_key : ${{ secrets.AWS_SSH_KEY }}
222
- holodeck_config : " tests/holodeck.yaml"
223
- - name : Get public dns name
224
- id : get_public_dns_name
225
- uses : mikefarah/yq@master
226
- with :
227
- cmd : yq '.status.properties[] | select(.name == "public-dns-name") | .value' /github/workspace/.cache/holodeck.yaml
228
- - name : Calculate test vars
229
- id : vars
230
- run : |
231
- COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}
232
- echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
233
- LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')
234
- echo "LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')" >> $GITHUB_ENV
235
-
236
- echo "OPERATOR_VERSION=${COMMIT_SHORT_SHA}" >> $GITHUB_ENV
237
- echo "OPERATOR_IMAGE=ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator" >> $GITHUB_ENV
238
- echo "VALIDATOR_VERSION=${COMMIT_SHORT_SHA}" >> $GITHUB_ENV
239
- echo "VALIDATOR_IMAGE=ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator/gpu-operator-validator" >> $GITHUB_ENV
240
-
241
- echo "instance_hostname=ubuntu@${{ steps.get_public_dns_name.outputs.result }}" >> $GITHUB_ENV
242
- echo "private_key=${{ github.workspace }}/key.pem" >> $GITHUB_ENV
243
- - name : Run e2e tests
244
- env :
245
- GPU_PRODUCT_NAME : " Tesla-T4"
246
- SKIP_LAUNCH : " true"
247
- CONTAINER_RUNTIME : " containerd"
248
- TEST_CASE : " ./tests/cases/defaults.sh"
249
- run : |
250
- echo "${{ secrets.AWS_SSH_KEY }}" > ${private_key} && chmod 400 ${private_key}
251
- ./tests/ci-run-e2e.sh ${OPERATOR_IMAGE} ${OPERATOR_VERSION} ${VALIDATOR_IMAGE} ${VALIDATOR_VERSION} ${GPU_PRODUCT_NAME} ${TEST_CASE} || rc=$?
252
- ./tests/scripts/pull.sh /tmp/logs logs
253
- exit $rc
254
- - name : Archive test logs
255
- if : ${{ failure() }}
256
- uses : actions/upload-artifact@v4
257
- with :
258
- name : containerd-e2e-test-logs
259
- path : ./logs/
260
- retention-days : 15
261
-
262
26
e2e-tests-nvidiadriver :
263
- needs : [build-gpu-operator, build-gpu-operator-validator]
264
27
runs-on : linux-amd64-cpu4
265
28
steps :
266
29
- uses : actions/checkout@v4
267
30
name : Check out code
268
31
- name : Set up Holodeck
269
-
32
+
270
33
with :
271
34
aws_access_key_id : ${{ secrets.AWS_ACCESS_KEY_ID }}
272
35
aws_secret_access_key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -280,18 +43,14 @@ jobs:
280
43
- name : Calculate test vars
281
44
id : vars
282
45
run : |
283
- COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}
284
- echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
285
- LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')
286
- echo "LOWERCASE_REPO_OWNER=$(echo "${GITHUB_REPOSITORY_OWNER}" | awk '{print tolower($0)}')" >> $GITHUB_ENV
287
-
288
- echo "OPERATOR_VERSION=${COMMIT_SHORT_SHA}" >> $GITHUB_ENV
289
- echo "OPERATOR_IMAGE=ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator" >> $GITHUB_ENV
290
- echo "VALIDATOR_VERSION=${COMMIT_SHORT_SHA}" >> $GITHUB_ENV
291
- echo "VALIDATOR_IMAGE=ghcr.io/${LOWERCASE_REPO_OWNER}/gpu-operator/gpu-operator-validator" >> $GITHUB_ENV
46
+ echo "OPERATOR_VERSION=162fe72f" >> $GITHUB_ENV
47
+ echo "OPERATOR_IMAGE=ghcr.io/nvidia/gpu-operator" >> $GITHUB_ENV
48
+ echo "VALIDATOR_VERSION=162fe72f" >> $GITHUB_ENV
49
+ echo "VALIDATOR_IMAGE=ghcr.io/nvidia/gpu-operator/gpu-operator-validator" >> $GITHUB_ENV
292
50
293
51
echo "instance_hostname=ubuntu@${{ steps.get_public_dns_name.outputs.result }}" >> $GITHUB_ENV
294
52
echo "private_key=${{ github.workspace }}/key.pem" >> $GITHUB_ENV
53
+ ls -al "${{ github.workspace }}/.cache"
295
54
- name : Run e2e tests
296
55
env :
297
56
GPU_PRODUCT_NAME : " Tesla-T4"
0 commit comments