Skip to content

Commit

Permalink
add barebones e2e tests action, with k3d setup
Browse files Browse the repository at this point in the history
Signed-off-by: Alexandre Lamarre <[email protected]>
  • Loading branch information
alexandreLamarre committed Apr 11, 2024
1 parent d3c4a12 commit 05f2803
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 0 deletions.
48 changes: 48 additions & 0 deletions .github/workflows/e2e-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Backup Restore CI

on:
push:
paths-ignore:
- 'docs/**'
- '*.md'
- '.gitignore'
- 'CODEOWNERS'
- 'LICENSE'

env :
K3D_VERSION : v5.4.6
CLUSTER_NAME : backup-restore

jobs:
e2e:
name : e2e-test
runs-on : ubuntu-latest
strategy:
matrix:
K8S_VERSION_FROM_CI : ["v1.24","stable"]
include:
- platform: linux/amd64
- platform: linux/arm64
steps:
- name : Checkout repository
uses : actions/checkout@v4
# - name : Setup environment variables
# run : echo "K8S_VERSION_FROM_CI=${{ matrix.K8S_VERSION_FROM_CI }}" >> $GITHUB_ENV
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name : CI
# run : make ci
- name : Install K3D
run : ./.github/workflows/e2e/scripts/install-k3d.sh
- name : Setup Cluster
run : ./.github/workflows/e2e/scripts/setup-cluster.sh
- name : Cluster info
run: |
kubectl cluster-info --context k3d-${{ env.CLUSTER_NAME }}
- name: Nodes
run: |
docker ps -a
kubectl config use-context k3d-${{ env.CLUSTER_NAME }}
kubectl get nodes -o wide
- name: Network
run: docker network inspect k3d-${{ env.CLUSTER_NAME }}
19 changes: 19 additions & 0 deletions .github/workflows/e2e/scripts/install-k3d.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

set -e
set -x

K3D_URL=https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh
DEFAULT_K3D_VERSION=v5.4.6

install_k3d(){
local k3dVersion=${K3D_VERSION:-${DEFAULT_K3D_VERSION}}
echo -e "Downloading k3d@${k3dVersion} see: ${K3D_URL}"
curl --silent --fail ${K3D_URL} | TAG=${k3dVersion} bash
}



install_k3d

k3d version
34 changes: 34 additions & 0 deletions .github/workflows/e2e/scripts/setup-cluster.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

set -e
set -x

# waits until all nodes are ready
wait_for_nodes(){
echo "wait until all agents are ready"
while :
do
readyNodes=1
statusList=$(kubectl get nodes --no-headers | awk '{ print $2}')
# shellcheck disable=SC2162
while read status
do
if [ "$status" == "NotReady" ] || [ "$status" == "" ]
then
readyNodes=0
break
fi
done <<< "$(echo -e "$statusList")"
# all nodes are ready; exit
if [[ $readyNodes == 1 ]]
then
break
fi
sleep 1
done
}

k3d cluster create ${CLUSTER_NAME}
wait_for_nodes

echo "${CLUSTER_NAME} ready"

0 comments on commit 05f2803

Please sign in to comment.