Skip to content

Commit

Permalink
add e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
kannon92 committed Aug 30, 2024
1 parent 4269e61 commit 800711c
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 0 deletions.
31 changes: 31 additions & 0 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Run tests

on: [ push, pull_request ]

permissions:
contents: read

jobs:
e2e:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.22.6
- name: Checkout code
uses: actions/checkout@v3
- name: Update vendor modules
run: go mod vendor
- name: Build
run: make PREFIX=artifacts cmds
- name: install helm and kubelet
run: |
sudo snap install helm --classic
sudo snap install kubectl --classic
- name: Setup e2e
run: make prep-e2e
- name: run e2e-test
run: make test-e2e
- name: teardown e2e-test
run: make teardown-e2e
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,15 @@ generate-deepcopy: vendor
output:object:dir=$(CURDIR)/api/$(VENDOR)/resource/$${api}; \
done

prep-e2e:
hack/setup-e2e.sh

test-e2e:
test/e2e/test.sh

teardown-e2e:
demo/delete-cluster.sh

# Generate an image for containerized builds
# Note: This image is local only
.PHONY: .build-image
Expand Down
23 changes: 23 additions & 0 deletions hack/setup-e2e.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash

# Copyright 2024 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

bash demo/build-driver.sh
bash demo/create-cluster.sh
helm upgrade -i \
--create-namespace \
--namespace dra-example-driver \
dra-example-driver \
deployments/helm/dra-example-driver
47 changes: 47 additions & 0 deletions test/e2e/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash

# Copyright 2024 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Very Simple Script for testing the demo

#kubectl create -f demo/gpu-test1.yaml
#kubectl create -f demo/gpu-test2.yaml
#kubectl create -f demo/gpu-test3.yaml
#kubectl create -f demo/gpu-test4.yaml
sleep 30

gpu_test_1=$(kubectl get pods -n gpu-test1 | grep -c 'Running')
if [ $gpu_test_1 != 2 ]; then
echo "gpu_test_1 $gpu_test_1 failed to match against 2 expected pods"
exit 1
fi

gpu_test_2=$(kubectl get pods -n gpu-test2 | grep -c 'Running')
if [ $gpu_test_2 != 1 ]; then
echo "gpu_test_2 $gpu_test_2 failed to match against 1 expected pod"
exit 1
fi

gpu_test_3=$(kubectl get pods -n gpu-test3 | grep -c 'Running')
if [ $gpu_test_3 != 2 ]; then
echo "gpu_test_3 $gpu_test_3 failed to match against 2 expected pods"
exit 1
fi

gpu_test_4=$(kubectl get pods -n gpu-test4 | grep -c 'Running')
if [ $gpu_test_4 != 1 ]; then
echo "gpu_test_4 $gpu_test_4 failed to match against 1 expected pods"
exit 1
fi

0 comments on commit 800711c

Please sign in to comment.