reuse compliance (#805) #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: E2E Tests | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
wait-for-img: | |
name: "Wait for Image Build" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: autotelic/action-wait-for-status-check@v1 | |
id: wait-for-build | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
# Context for which we should look for the matching status | |
statusName: ${{ (github.event_name == 'pull_request') && 'pull-lifecycle-mgr-build' || 'main-lifecycle-mgr-build' }} | |
timeoutSeconds: 600 | |
intervalSeconds: 10 | |
- name: Exit If Failing Build Requirement | |
if: steps.wait-for-build.outputs.state != 'success' | |
run: | | |
echo "Image build did not succeed, skipping E2E Test!" | |
exit 1 | |
e2e-integration: | |
strategy: | |
matrix: | |
cli-stability: [ "unstable" ] | |
name: "Run E2E tests" | |
needs: [wait-for-img] | |
runs-on: ubuntu-latest | |
env: | |
K3D_VERSION: v5.4.7 | |
ISTIO_VERSION: 1.17.1 | |
CM_VERSION: v1.12.0 | |
KLM_VERSION_TAG: latest | |
KLM_IMAGE_REPO: prod | |
steps: | |
- name: Install prerequisites | |
run: | | |
sudo add-apt-repository ppa:longsleep/golang-backports -y | |
sudo apt update -y | |
sudo apt install git curl wget make bash golang-go -y | |
- name: Install Istio CLI | |
run: | | |
curl -L https://istio.io/downloadIstio | TARGET_ARCH=x86_64 sh - | |
chmod +x istio-$ISTIO_VERSION/bin/istioctl | |
mv istio-$ISTIO_VERSION/bin/istioctl /usr/local/bin | |
- name: Install kubectl | |
run: | | |
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" | |
chmod +x kubectl | |
mv kubectl /usr/local/bin | |
- name: Install Kyma CLI | |
run: | | |
wget -q https://storage.googleapis.com/kyma-cli-${{ matrix.cli-stability }}/kyma-linux | |
chmod +x kyma-linux && mv kyma-linux /usr/local/bin/kyma-${{ matrix.cli-stability }} | |
echo "PATH=/usr/local/bin/kyma-${{ matrix.cli-stability }}" >> $GITHUB_OUTPUT | |
- run: ln -s /usr/local/bin/kyma-${{ matrix.cli-stability }} /usr/local/bin/kyma | |
- name: Install Cert Manager Command Line Tool | |
run: | | |
OS=$(go env GOOS); ARCH=$(go env GOARCH); curl -fsSL -o cmctl.tar.gz https://github.com/cert-manager/cert-manager/releases/latest/download/cmctl-$OS-$ARCH.tar.gz | |
tar xzf cmctl.tar.gz | |
sudo mv cmctl /usr/local/bin | |
- name: Install k3d | |
run: wget -qO - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=$K3D_VERSION bash | |
- name: Provision SKR cluster | |
run: | | |
k3d cluster create skr -p 10080:80@loadbalancer -p 10443:443@loadbalancer --k3s-arg '--disable=traefik@server:0' | |
- name: Provision KCP cluster | |
run: | | |
kyma provision k3d --name=kcp -p 9080:80@loadbalancer -p 9443:443@loadbalancer --ci --registry-port 5111 | |
- name: Update Kubeconfigs | |
run: k3d kubeconfig merge -a -d | |
- name: Export required Kubeconfig Env vars | |
run: | | |
echo "KCP_KUBECONFIG=$(k3d kubeconfig write kcp)" >> $GITHUB_ENV | |
echo "SKR_KUBECONFIG=$(k3d kubeconfig write skr)" >> $GITHUB_ENV | |
- name: Patch /etc/hosts | |
run: | | |
FILE=/etc/hosts | |
if [ -f "$FILE" ]; then | |
sudo echo "127.0.0.1 k3d-kcp-registry" | sudo tee -a $FILE | |
else | |
echo "$FILE does not exist." | |
exit 1 | |
fi | |
echo "/etc/hosts file patched" | |
- name: Switch kubeconfig context to KCP cluster | |
run: kubectl config use-context k3d-kcp | |
- name: Deploy Istio on KCP Cluster | |
run: | | |
istioctl install --set profile=demo -y | |
- name: Deploy Cert Manager on KCP Cluster | |
run: | | |
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/$CM_VERSION/cert-manager.yaml | |
cmctl check api --wait=2m | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
- name: Override Kustomize Controller Image TAG and Image repository environment variables in Pull Request to PR Image | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
echo "KLM_VERSION_TAG=PR-${{ github.event.pull_request.number }}" >> $GITHUB_ENV | |
echo "KLM_IMAGE_REPO=dev" >> $GITHUB_ENV | |
- name: Deploy LM local testing kustomize | |
run: | | |
maxRetry=5 | |
for retry in $(seq 1 $maxRetry) | |
do | |
if make local-deploy-with-watcher IMG=europe-docker.pkg.dev/kyma-project/$KLM_IMAGE_REPO/lifecycle-manager:$KLM_VERSION_TAG; then | |
echo "KLM deployed successfully" | |
exit 0 | |
elif [[ $retry -lt $maxRetry ]]; then | |
echo "Deploy encountered some error, will retry after 20 seconds" | |
sleep 20 | |
else | |
echo "KLM deployment failed" | |
exit 1 | |
fi | |
done | |
- name: Run Watcher E2E Tests | |
run: | | |
make -C tests/e2e_test test-watcher-e2e | |
- name: Run Kyma CR Deletion Test | |
run: | | |
make -C tests/e2e_test test-kyma-deletion-e2e |