Skip to content

Add Codecov reporting #737

Add Codecov reporting

Add Codecov reporting #737

Workflow file for this run

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
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@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: 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: Ensure Service Account kubeconfig
run: |
KUBECONFIG=${PWD}/kubeconfig_managed make kind-ensure-sa
KUBECONFIG=${PWD}/kubeconfig_hub make kind-ensure-sa
- name: E2E Tests
run: |
export GOPATH=$(go env GOPATH)
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-coverage
- name: E2E Tests That Simulate Hosted Mode
run: |
export GOPATH=$(go env GOPATH)
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-hosted-coverage
- name: Verify Deployment Configuration
run: |
make build-images
KUBECONFIG=${PWD}/kubeconfig_managed_e2e make kind-deploy-controller-dev
- name: Run E2E Uninstallation Tests
if: ${{ matrix.kind == 'latest' }}
run: |
KUBECONFIG=${PWD}/kubeconfig_managed make e2e-test-uninstall-coverage
- name: Test Coverage Verification
if: ${{ github.event_name == 'pull_request' && matrix.kind == 'latest' }}
run: |
make test-coverage
make coverage-verify
- name: Debug
if: ${{ failure() }}
run: |
make e2e-debug
- name: Clean up cluster
if: ${{ always() }}
run: |
make kind-delete-cluster
- name: Upload Test Info
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v7
with:
name: "${{matrix.kind}}-tests"
path: |
coverage_*.out
report_*.xml
- name: Report unit coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_UPLOAD_TOKEN }}
files: ./coverage_unit.out
flags: unit-tests
name: unit-tests
fail_ci_if_error: false
disable_search: true
- name: Report e2e coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_UPLOAD_TOKEN }}
files: ./coverage_e2e.out
flags: e2e-tests
name: e2e-tests
fail_ci_if_error: false
disable_search: true
- name: Report overall coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_UPLOAD_TOKEN }}
fail_ci_if_error: false