-
Notifications
You must be signed in to change notification settings - Fork 57
134 lines (128 loc) · 3.53 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
name: ci
on:
pull_request:
paths:
- "charts/**/**"
jobs:
codespell:
name: codespell
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- 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@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
- uses: actions/setup-python@v5
with:
python-version: '3.x'
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@v4
# 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: super-linter/[email protected]
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_ALL_CODEBASE: false
VALIDATE_JSCPD: false
VALIDATE_KUBERNETES_KUBEVAL: false
VALIDATE_YAML: false
VALIDATE_KUBERNETES_KUBECONFORM: false
VALIDATE_CHECKOV: false
kubeconform:
runs-on: ubuntu-latest
needs:
- codespell
- super-linter
- lint-chart
strategy:
matrix:
k8s:
- 1.26.15
- 1.27.14
- 1.28.10
- 1.29.5
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup helm
uses: azure/[email protected]
- name: Run kubeconform tests
run: .github/kubeconform.sh
env:
KUBERNETES_VERSION: ${{ matrix.k8s }}
KUBECONFORM_VERSION: v0.6.6
- name: Create test summary
uses: test-summary/action@v2
with:
paths: "./results/*.tap"
if: always()
install-chart:
name: install-chart
runs-on: ubuntu-latest
needs:
- kubeconform
strategy:
matrix:
k8s:
- v1.26.15
- v1.27.13
- v1.28.9
- v1.29.4
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
- uses: actions/setup-python@v5
with:
python-version: '3.x'
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/kind-action@v1
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