-
Notifications
You must be signed in to change notification settings - Fork 8
131 lines (113 loc) · 3.28 KB
/
kind.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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