-
Notifications
You must be signed in to change notification settings - Fork 71
136 lines (114 loc) · 3.25 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
name: ci
permissions: read-all
on:
pull_request:
branches:
- main
env:
helm-version: "v3.16.2"
kubeconform-version: "v0.6.7"
jobs:
super-linter:
permissions:
statuses: write
runs-on: ubuntu-22.04
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter/slim@v7
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LINTER_RULES_PATH: .github/linters
VALIDATE_ALL_CODEBASE: false
VALIDATE_JSCPD: false
VALIDATE_KUBERNETES_KUBECONFORM: false
VALIDATE_YAML: false
VALIDATE_YAML_PRETTIER: false
lint-chart:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: "${{ env.helm-version }}"
- uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (lint)
run: ct lint --config .github/ct.yaml
kubeconform-chart:
runs-on: ubuntu-22.04
needs:
- lint-chart
- super-linter
strategy:
matrix:
k8s:
- v1.29.10
- v1.30.6
- v1.31.2
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: "${{ env.helm-version }}"
- name: Run kubeconform
env:
KUBERNETES_VERSION: ${{ matrix.k8s }}
KUBECONFORM_VERSION: "${{ env.kubeconform-version }}"
run: .github/kubeconform.sh
install-chart:
name: install-chart
runs-on: ubuntu-22.04
needs:
- kubeconform-chart
strategy:
matrix:
k8s:
# Versions of kindest/node
- v1.29.8
- v1.30.4
- v1.31.1
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: "${{ env.helm-version }}"
- uses: actions/setup-python@v5
with:
python-version: 3.7
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: if [[ -n "$(ct list-changed --config .github/ct.yaml)" ]]; 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: Create Namespace 'zammad'
run: kubectl create namespace zammad
- name: Install additional objects for 'full' test scenario
run: kubectl create --namespace zammad --filename zammad/ci/full-objects.yaml
- name: Run chart-testing (install)
run: ct install --config .github/ct.yaml --helm-extra-args '--timeout 900s'