🤖 Sync from open-cluster-management-io/governance-policy-framework-addon: #75 #290
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 | |
working-directory: governance-policy-framework-addon | |
jobs: | |
kind-tests: | |
runs-on: ubuntu-latest | |
env: | |
REGISTRY: localhost:5000 | |
KIND_VERSION: ${{ matrix.kind }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# Run tests on oldest 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 Governance Policy Framework Addon | |
uses: actions/checkout@v3 | |
with: | |
path: governance-policy-framework-addon | |
fetch-depth: 0 # Fetch all history for all tags and branches | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version-file: governance-policy-framework-addon/go.mod | |
- name: Verify modules | |
run: | | |
go mod verify | |
- name: Some quality checks | |
run: | | |
make fmt | |
git diff --exit-code | |
make lint | |
make gosec-scan | |
- name: Verify deploy/operator.yaml | |
run: | | |
make generate-operator-yaml | |
git diff --exit-code | |
- name: Unit and Integration Tests | |
run: | | |
make test | |
- name: Create K8s KinD Cluster - ${{ matrix.kind }} | |
run: | | |
make kind-bootstrap-cluster-dev | |
- name: E2E Tests | |
run: | | |
export GOPATH=$(go env GOPATH) | |
make e2e-test-coverage | |
- name: E2E Tests That Simulate Hosted Mode | |
run: | | |
export GOPATH=$(go env GOPATH) | |
export DISABLE_GK_SYNC="true" | |
export E2E_CLUSTER_NAMESPACE="other-namespace" | |
export E2E_CLUSTER_NAMESPACE_ON_HUB="other-namespace-on-hub" | |
export COVERAGE_E2E_OUT=coverage_e2e_hosted_mode.out | |
make e2e-test-coverage | |
- name: Verify Deployment Configuration | |
run: | | |
make build-images | |
make kind-deploy-controller-dev | |
- name: Run E2E Uninstallation Tests | |
if: ${{ matrix.kind == 'latest' }} | |
run: | | |
make e2e-test-uninstall-coverage | |
- name: Test Coverage and Report Generation | |
if: ${{ matrix.kind == 'latest' }} | |
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@v3 | |
with: | |
name: artifacts | |
path: | | |
governance-policy-framework-addon/coverage*.out | |
governance-policy-framework-addon/event.json | |
governance-policy-framework-addon/gosec.json | |
- name: Debug | |
if: ${{ failure() }} | |
run: | | |
make e2e-debug | |
- name: Clean up cluster | |
if: ${{ always() }} | |
run: | | |
make kind-delete-cluster |