name: Tests HELM on: push: branches: - master - main paths-ignore: - 'docs/**' - 'website/**' - 'assets/**' - 'backup/**' - '*.md' pull_request: types: [opened, synchronize, ready_for_review, reopened] paths-ignore: - 'docs/**' - 'website/**' - 'assets/**' - 'backup/**' - '*.md' jobs: create-helm-list: name: HELM Create tests list runs-on: ubuntu-latest outputs: matrix: ${{ steps.matrix.outputs.matrix }} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - id: matrix run: | script=$(./test/make_matrix_ginkgo.sh helm) echo "matrix=${script}" >> $GITHUB_OUTPUT verify-code: name: HELM Verify code before tests runs-on: ubuntu-latest needs: [create-helm-list] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up env vars run: | echo "GO111MODULE=on" >> $GITHUB_ENV echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "GOPATH=/home/runner/go" >> $GITHUB_ENV - name: Prepare go environment uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ env.GO_VERSION }} - name: Ensure Golang runtime dependencies run: make go-dependencies - name: Verify code formatting run: make verify run-helm-tests: runs-on: ubuntu-latest needs: [create-helm-list, verify-code] if: github.event.pull_request.draft == false name: HELM ${{ matrix.test }} strategy: fail-fast: false matrix: ${{ fromJSON(needs.create-helm-list.outputs.matrix) }} steps: - name: Check out code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Set up env vars run: | echo "GO111MODULE=on" >> $GITHUB_ENV echo "GO_VERSION=v$(sed -n 's/GO_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "HELM_VERSION=v$(sed -n 's/HELM_VERSION=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "KIND_CLUSTER_NAME=$(sed -n 's/KIND_CLUSTER_NAME=//p' config.base.env | tr -d '\n' | tr -d '"')" >> $GITHUB_ENV echo "GOPATH=/home/runner/go" >> $GITHUB_ENV - name: Prepare go environment uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5 with: go-version: ${{ env.GO_VERSION }} - name: Ensure Golang runtime dependencies run: make go-dependencies - name: Kind setup uses: helm/kind-action@0025e74a8c7512023d06dc019c617aa3cf561fde # v1.10.0 with: cluster_name: ${{env.KIND_CLUSTER_NAME}} config: kind-cluster.yaml - name: Prepare environment for e2e run: | sudo apt-get update && sudo apt-get install -y socat sudo mkdir -p $HOME/.kube sudo chown -R $USER $HOME/.kube - name: Jenkins Operator - Helm Chart tests env: TNAME: ${{ matrix.test }} TFILE: ${{ matrix.file }} TLINE: ${{ matrix.line }} run: | git reset --hard make helm-lint printf "\n \n > Running test: %s from file: $s line: %s\n" "${TNAME}" "${TFILE}" "${TLINE}" make helm-e2e E2E_TEST_ARGS='-ginkgo.v -ginkgo.focus="${TNAME}"' - name: Debug if: failure() shell: bash continue-on-error: true run: | randomns=$(kubectl get ns| grep -i 'ns[0-9]\+' |cut -d ' ' -f 1) kubectl get pods -n ${randomns} kubectl get events -n ${randomns}