[CI] Various CI improvements #34
Workflow file for this run
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: "[helm-project-operator] E2E Helm Project Operator" | |
on: | |
workflow_dispatch: | |
inputs: | |
enable_tmate: | |
description: 'Enable debugging via tmate' | |
required: false | |
default: "false" | |
debug: | |
description: "Enable debug logs" | |
required: false | |
default: "false" | |
k3s_version: | |
description: "Version of k3s to use for the underlying cluster, should exist in https://hub.docker.com/r/rancher/k3s/tags" | |
required: false | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
- 'scripts/**' | |
- '*.md' | |
- '*.dapper' | |
- '.gitignore' | |
- 'CODEOWNERS' | |
- 'LICENSE' | |
- 'Makefile' | |
env: | |
CGO_ENABLED: 0 | |
YQ_VERSION: v4.25.1 | |
E2E_CI: true | |
REPO: rancher | |
TAG: dev | |
APISERVER_PORT: 8001 | |
DEFAULT_SLEEP_TIMEOUT_SECONDS: 10 | |
KUBECTL_WAIT_TIMEOUT: 120s | |
DEBUG: ${{ github.event.inputs.debug || false }} | |
permissions: | |
contents: write | |
jobs: | |
e2e-helm-project-operator: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
k3s_version: | |
# k3d version list k3s | sed 's/+/-/' | sort -h | |
- ${{ github.event.inputs.k3s_version || 'v1.20.15-k3s1' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name : setup Go | |
uses : actions/setup-go@v5 | |
with: | |
go-version: 1.22 | |
- name: Install mikefarah/yq | |
run: | | |
sudo wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq; | |
- name: Perform CI | |
run: | | |
REPO=${REPO} TAG=${TAG} ./scripts/build; | |
REPO=${REPO} TAG=${TAG} ./scripts/package; | |
- name: Provision k3d Cluster | |
uses: AbsaOSS/k3d-action@v2 | |
# k3d will automatically create a network named k3d-test-cluster-1 with the range 172.18.0.0/16 | |
with: | |
cluster-name: "e2e-ci-helm-project-operator" | |
args: >- | |
--agents 1 | |
--network "nw01" | |
--image docker.io/rancher/k3s:${{matrix.k3s_version}} | |
- name: Import Images Into k3d | |
run: | | |
k3d image import ${REPO}/helm-project-operator:${TAG} -c e2e-ci-helm-project-operator; | |
- name: Setup kubectl context | |
run: | | |
kubectl config use-context k3d-e2e-ci-helm-project-operator; | |
- name: Set Up Tmate Debug Session | |
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.enable_tmate == 'true' }} | |
uses: mxschmitt/action-tmate@v3 | |
timeout-minutes: 15 | |
with: | |
limit-access-to-actor: true | |
- name: Install Helm Project Operator | |
run: ./.github/workflows/e2e/scripts/install-helm-project-operator.sh; | |
- name: Check if Helm Project Operator is up | |
run: ./.github/workflows/e2e/scripts/validate-helm-project-operator.sh; | |
- name: Check if Project Registration Namespace is auto-created on namespace detection | |
run: ./.github/workflows/e2e/scripts/create-project-namespace.sh; | |
- name: Deploy Example Chart via ProjectHelmChart CR | |
run: ./.github/workflows/e2e/scripts/create-projecthelmchart.sh; | |
- name: Delete Example Chart | |
run: ./.github/workflows/e2e/scripts/delete-projecthelmchart.sh; | |
- name: Uninstall Helm Project Operator | |
run: ./.github/workflows/e2e/scripts/uninstall-helm-project-operator.sh; | |
- name: Delete k3d cluster | |
if: always() | |
run: k3d cluster delete e2e-ci-helm-project-operator |