-
Notifications
You must be signed in to change notification settings - Fork 57
137 lines (132 loc) · 3.54 KB
/
ci.yaml
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
132
133
134
135
136
137
name: ci
on:
pull_request:
paths:
- "charts/**/**"
jobs:
codespell:
name: codespell
runs-on: ubuntu-20.04
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Codespell
uses: codespell-project/actions-codespell@master
with:
skip: ".git"
exclude_file: ".github/codespell-ignore.list"
ignore_words_file: ".github/codespell-ignore.list"
check_filenames: true
check_hidden: true
lint-chart:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.1
- uses: actions/setup-python@v4
with:
python-version: 3.9
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (lint)
run: ct lint --config .github/ct.yaml
super-linter:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
# https://github.com/github/super-linter/issues/1397
with:
# Full git history is needed to get a proper
# list of changed files within `super-linter`
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter@v4
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_ALL_CODEBASE: false
VALIDATE_JSCPD: false
VALIDATE_KUBERNETES_KUBEVAL: false
VALIDATE_YAML: false
kubeconform:
runs-on: ubuntu-latest
needs:
- codespell
- super-linter
- lint-chart
strategy:
matrix:
k8s:
- 1.23.17
- 1.24.11
- 1.25.7
- 1.26.2
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup helm
uses: azure/setup-helm@v3
with:
version: 3.11.1
- name: Run kubeconform tests
run: .github/kubeconform.sh
env:
KUBERNETES_VERSION: ${{ matrix.k8s }}
KUBECONFORM_VERSION: v0.6.4
- name: Create test summary
uses: test-summary/action@v2
with:
paths: "./results/*.tap"
if: always()
install-chart:
name: install-chart
runs-on: ubuntu-20.04
needs:
- kubeconform
strategy:
matrix:
k8s:
- v1.23.13
- v1.24.7
- v1.25.3
- v1.26.2
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v1
with:
version: v3.11.1
- uses: actions/setup-python@v4
with:
python-version: 3.9
check-latest: true
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed="$(ct list-changed --config .github/ct.yaml)"
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Create kind cluster
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'
with:
config: .github/kind-config.yaml
node_image: kindest/node:${{ matrix.k8s }}
- name: Run chart-testing (install)
run: ct install --config .github/ct.yaml