-
Notifications
You must be signed in to change notification settings - Fork 58
131 lines (126 loc) · 3.45 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
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/setup-helm@v4.2.0
- uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
- 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/super-linter@v6.5.0
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.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/setup-helm@v4.2.0
- 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.14
- v1.28.10
- v1.29.5
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4.2.0
- uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
- 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