-
Notifications
You must be signed in to change notification settings - Fork 53
150 lines (128 loc) · 4.09 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
138
139
140
141
142
143
144
145
146
147
148
149
150
name: CI
on: [push, pull_request]
jobs:
test:
name: Test charts
runs-on: ubuntu-latest
steps:
- uses: azure/setup-helm@v1
with:
version: '3.8.2'
- name: helm version
run: helm version
- uses: actions/checkout@v2
- name: Add Helm repos
run: make repo-add update-req
- name: Lint
run: make lint
- name: Test stable
run: make stable
- name: Test demo
run: make demo
helm-install-sanity:
name: Helm Chart Install Sanity
runs-on: ubuntu-latest
strategy:
matrix:
chart:
- coredns-updater
- dcgm-exporter
- dex-crds
- empty
- fuse-csi-driver
- gpu-feature-discovery
- iguazio-system
- mpi-operator
- node-feature-discovery
- pod-gpu-metrics-exporter
- prebaked-registry
- provazio
- pvc
- scaler
- spark-operator
- sparkoperator
- tenant
- tenant-creator
- tensorboard
- v3io-configs
- v3io-webapi
- v3iod
# Charts that require v3io storage driver to be installed
# - grafana
# - hive
# - jupyter
# - jupyterhub
# - label-studio
# - mariadb
# - metrics-server-exporter
# - mlrun
# - pipelines
# - presto
# - registry-creds-handler
# - shell
# - spark
# - spark-history-server
# - v3io-framesd
# - zeppelin
# Other Problematic Charts
# - k8s-pod-headless-service-operator # requires manual setting image tag
# - tsdb-functions # requires nuclio CRDs to be installed
# - mlrun-kit # mysql pod not starting in minikube in github workflows
steps:
- uses: actions/checkout@v2
- name: Check if chart changed
id: chart_changed
uses: tj-actions/[email protected]
with:
files: |
stable/${{ matrix.chart }}/
- name: Freeing up disk space
if: steps.chart_changed.outputs.any_changed == 'true'
run: |
chmod +x "${GITHUB_WORKSPACE}/hack/scripts/ci/free_space.sh"
"${GITHUB_WORKSPACE}/hack/scripts/ci/free_space.sh"
- uses: azure/setup-helm@v1
if: steps.chart_changed.outputs.any_changed == 'true'
with:
version: "v3.9.1"
- uses: manusa/[email protected]
if: steps.chart_changed.outputs.any_changed == 'true'
with:
minikube version: "v1.26.1"
kubernetes version: "v1.23.9"
driver: docker
github token: ${{ github.token }}
- name: Get latest chart dependencies
if: steps.chart_changed.outputs.any_changed == 'true'
run: |
cd stable/${{ matrix.chart }}
helm dependency update
cd -
- name: Install Helm Chart
if: steps.chart_changed.outputs.any_changed == 'true'
# the --devel flag is needed to install the latest unstable version of the chart
run: |
helm install ${{ matrix.chart }} \
--debug \
--devel \
--wait \
--timeout 600s \
./stable/${{ matrix.chart }}
- name: Output some logs in case of failure
if: ${{ failure() }}
# add set -x to print commands before executing to make logs reading easier
run: |
set -x
minikube ip
minikube logs
minikube kubectl -- --namespace ${NAMESPACE} logs --tail=-1
minikube kubectl -- --namespace ${NAMESPACE} get all
minikube kubectl -- --namespace ${NAMESPACE} get all -o yaml
minikube kubectl -- --namespace ${NAMESPACE} describe pods
minikube kubectl -- --namespace ${NAMESPACE} get cm
minikube kubectl -- --namespace ${NAMESPACE} get cm -o yaml
minikube kubectl -- --namespace ${NAMESPACE} get secrets
minikube kubectl -- --namespace ${NAMESPACE} get secrets -o yaml
minikube kubectl -- --namespace ${NAMESPACE} get pvc
minikube kubectl -- --namespace ${NAMESPACE} get pv
set +x