[release-2.11] 🤖 Sync from open-cluster-management-io/config-policy-controller: #308 #2574
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: KinD tests | |
on: | |
push: | |
branches: | |
- main | |
- release-[0-9]+.[0-9]+ | |
pull_request: | |
branches: | |
- main | |
- release-[0-9]+.[0-9]+ | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
kind-tests: | |
runs-on: ubuntu-latest | |
env: | |
REGISTRY: localhost:5000 | |
strategy: | |
fail-fast: false | |
matrix: | |
# Run tests on minimum and newest supported OCP Kubernetes | |
# The "minimum" tag is set in the Makefile | |
# KinD tags: https://hub.docker.com/r/kindest/node/tags | |
kind: | |
- "minimum" | |
- "latest" | |
name: KinD tests | |
steps: | |
- name: Checkout Config Policy Controller | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Verify modules | |
run: | | |
go mod verify | |
- name: Verify format | |
run: | | |
make fmt | |
git diff --exit-code | |
make lint | |
- name: Verify deploy/operator.yaml | |
run: | | |
make generate | |
make generate-operator-yaml | |
git diff --exit-code | |
- name: Unit and Integration Tests | |
run: | | |
make test | |
- name: Create K8s KinD Cluster - ${{ matrix.kind }} | |
env: | |
KIND_VERSION: ${{ matrix.kind }} | |
run: | | |
make kind-bootstrap-cluster-dev | |
- name: Ensure Service Account kubeconfig | |
run: | | |
KUBECONFIG=${PWD}/kubeconfig_managed make kind-ensure-sa | |
- name: E2E Tests | |
run: | | |
export GOPATH=$(go env GOPATH) | |
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-coverage | |
- name: Create K8s KinD Cluster to simulate hosted mode - ${{ matrix.kind }} | |
env: | |
KIND_VERSION: ${{ matrix.kind }} | |
run: | | |
make kind-additional-cluster | |
- name: E2E tests that simulate hosted mode | |
run: | | |
export GOPATH=$(go env GOPATH) | |
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-hosted-mode-coverage | |
- name: Verify Deployment Configuration | |
run: | | |
make build-images | |
KUBECONFIG=${PWD}/kubeconfig_managed_e2e make kind-deploy-controller-dev | |
- name: E2E tests that require the controller running in a cluster | |
run: | | |
export GOPATH=$(go env GOPATH) | |
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-running-in-cluster | |
- name: Test Coverage and Report Generation | |
run: | | |
make test-coverage | tee report_unit.json | |
make coverage-verify | |
make gosec-scan | |
cat gosec.json | |
- name: Store the GitHub triggering event for the sonarcloud workflow | |
if: | | |
matrix.kind == 'latest' && | |
github.repository_owner == 'stolostron' | |
run: | | |
cat <<EOF > event.json | |
${{ toJSON(github.event) }} | |
EOF | |
- name: Upload artifacts for the sonarcloud workflow | |
if: | | |
matrix.kind == 'latest' && | |
github.repository_owner == 'stolostron' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: artifacts | |
path: | | |
coverage*.out | |
event.json | |
gosec.json | |
- name: Debug | |
if: ${{ failure() }} | |
run: | | |
make e2e-debug | |
- name: Clean up cluster | |
if: ${{ always() }} | |
run: | | |
make kind-delete-cluster |