Unify e2e tests

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
This commit is contained in:
Stefan Prodan
2026-05-20 12:29:24 +03:00
parent 466cd65931
commit 47dbd328d6
5 changed files with 38 additions and 70 deletions

View File

@@ -17,22 +17,16 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Disk Cleanup
uses: ./.github/actions/runner-cleanup
- name: Setup Kubernetes
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
cluster_name: kind
- name: Build container image
run: |
./test/build.sh
kind load docker-image test/podinfo:latest
- name: Setup Helm
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v4.1.0
- name: Deploy
run: ./test/deploy.sh
- name: Setup Kubernetes
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
cluster_name: kind
- name: Run integration tests
run: ./test/test.sh
run: ./test/e2e.sh
- name: Debug failure
if: failure()
run: |
@@ -59,7 +53,7 @@ jobs:
cluster_name: kind
- name: Build container
run: |
docker build -t ${PODINFO_IMAGE_URL}:${PODINFO_VERSION} --build-arg "REVISION=${GITHUB_SHA}" -f Dockerfile.xx .
docker build -t ${PODINFO_IMAGE_URL}:${PODINFO_VERSION} --build-arg "REVISION=${GITHUB_SHA}" -f Dockerfile .
kind load docker-image ${PODINFO_IMAGE_URL}:${PODINFO_VERSION}
- name: Vet module
run: |

View File

@@ -1,7 +0,0 @@
#! /usr/bin/env sh
set -e
# build the docker file
GIT_COMMIT=$(git rev-list -1 HEAD) && \
DOCKER_BUILDKIT=1 docker build --tag test/podinfo --build-arg "REVISION=${GIT_COMMIT}" .

View File

@@ -1,30 +0,0 @@
#! /usr/bin/env sh
# install cert-manager
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
# wait for cert manager
kubectl -n cert-manager rollout status deployment/cert-manager --timeout=2m
kubectl -n cert-manager rollout status deployment/cert-manager-webhook --timeout=2m
kubectl -n cert-manager rollout status deployment/cert-manager-cainjector --timeout=2m
# install self-signed certificate
cat << 'EOF' | kubectl apply -f -
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: self-signed
spec:
selfSigned: {}
EOF
# install podinfo with tls enabled
helm upgrade --install podinfo ./charts/podinfo \
--set image.repository=test/podinfo \
--set image.tag=latest \
--set tls.enabled=true \
--set certificate.create=true \
--set hpa.enabled=true \
--set hpa.cpu=95 \
--set hooks.postInstall.job.enabled=true \
--namespace=default

View File

@@ -2,19 +2,39 @@
set -e
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
# Build container image
docker build --tag test/podinfo --build-arg "REVISION=0.0.0-$(git rev-list -1 HEAD)" .
# run the build
$SCRIPT_DIR/build.sh
# create the kind cluster
kind create cluster || true
# load the docker image
# Load image in cluster
kind load docker-image test/podinfo:latest
# run the deploy
$SCRIPT_DIR/deploy.sh
# Install cert-manager
kubectl apply --server-side -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.2/cert-manager.yaml
kubectl -n cert-manager rollout status deployment/cert-manager --timeout=2m
kubectl -n cert-manager rollout status deployment/cert-manager-webhook --timeout=2m
kubectl -n cert-manager rollout status deployment/cert-manager-cainjector --timeout=2m
# run the tests
$SCRIPT_DIR/test.sh
# Configure self-signed certificate
cat << 'EOF' | kubectl apply --server-side -f -
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: self-signed
spec:
selfSigned: {}
EOF
# Install podinfo with TLS enabled
helm upgrade --install --wait podinfo ./charts/podinfo \
--set image.repository=test/podinfo \
--set image.tag=latest \
--set tls.enabled=true \
--set certificate.create=true \
--set hpa.enabled=true \
--set hpa.cpu=95 \
--set replicaCount=2 \
--set hooks.postInstall.job.enabled=true \
--namespace=default
# Run tests
helm test podinfo

View File

@@ -1,9 +0,0 @@
#1 /usr/bin/env sh
set -e
# wait for podinfo
kubectl rollout status deployment/podinfo --timeout=3m
# test podinfo
helm test podinfo