Skip to content

Commit f777d3e

Browse files
committed
test holodeck
Signed-off-by: Tariq Ibrahim <[email protected]>
1 parent 162fe72 commit f777d3e

File tree

2 files changed

+7
-247
lines changed

2 files changed

+7
-247
lines changed

.github/workflows/ci.yaml

+6-247
Original file line numberDiff line numberDiff line change
@@ -22,251 +22,14 @@ on:
2222
- release-*
2323

2424
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-
uses: azure/[email protected]
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-
20925
### 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-
uses: NVIDIA/[email protected]
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-
26226
e2e-tests-nvidiadriver:
263-
needs: [build-gpu-operator, build-gpu-operator-validator]
26427
runs-on: linux-amd64-cpu4
26528
steps:
26629
- uses: actions/checkout@v4
26730
name: Check out code
26831
- name: Set up Holodeck
269-
uses: NVIDIA/[email protected].1
32+
uses: NVIDIA/[email protected].5
27033
with:
27134
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
27235
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -280,18 +43,14 @@ jobs:
28043
- name: Calculate test vars
28144
id: vars
28245
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
29250
29351
echo "instance_hostname=ubuntu@${{ steps.get_public_dns_name.outputs.result }}" >> $GITHUB_ENV
29452
echo "private_key=${{ github.workspace }}/key.pem" >> $GITHUB_ENV
53+
ls -al "${{ github.workspace }}/.cache"
29554
- name: Run e2e tests
29655
env:
29756
GPU_PRODUCT_NAME: "Tesla-T4"

tests/scripts/.rsync-excludes

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
vendor/
22
.git
3+
.cache
34
aws-kube-ci
45
cnt-ci
56
key.pem

0 commit comments

Comments
 (0)