-
Notifications
You must be signed in to change notification settings - Fork 270
133 lines (114 loc) · 4.24 KB
/
lint-test.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
name: Lint and Test Charts
on:
pull_request:
paths:
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- 'charts/nextcloud/Chart.yaml'
- 'charts/nextcloud/values.yaml'
- 'charts/nextcloud/templates/**'
lint:
runs-on: ubuntu-latest-low
needs: changes
if: needs.changes.outputs.src != 'false'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.14.4
- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
id: lint
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}
test:
runs-on: ubuntu-22.04
needs: [changes, lint]
# only run this job if there are helm chart file changes
if: needs.changes.outputs.src != 'false'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.14.4
- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
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'
- name: Install MinIO for testing S3 as Primary Storage
# only used during ct-s3-as-primary-values.yaml
# installs minio community helm chart here:
# https://github.com/minio/minio/tree/master/helm/minio
run: |
helm repo add minio https://charts.min.io/ && \
helm install minio \
--namespace nextcloud \
--create-namespace \
--wait \
--wait-for-jobs \
--timeout 2m0s \
--values .github/tests/minio_test_values.yaml \
minio/minio
- name: Run chart-testing (install all charts/nextcloud/ci/ct-*-values.yaml)
id: install
if: steps.list-changed.outputs.changed == 'true'
run: ct install --target-branch ${{ github.event.repository.default_branch }}
- name: Try adding a file to Nextcloud
# only used during ct-s3-as-primary-values.yaml
# applies a kubernetes job that uploads a file and then checks log of finished pod
run: |
kubectl config set-context --current --namespace=nextcloud && \
kubectl apply -f ./.github/tests/test_upload_job.yaml --wait=true && \
sleep 2 && \
kubectl wait --for=condition=Complete --timeout=2m job/create-nextcloud-file && \
echo "Here's the logs from the job:" && \
kubectl logs --tail=-1 -f -l batch.kubernetes.io/job-name=create-nextcloud-file && \
echo "Here's the logs from the nextcloud pod:" && \
kubectl logs -l app.kubernetes.io/name=nextcloud
summary:
runs-on: ubuntu-latest-low
needs: [changes, test]
if: always()
steps:
- name: Summary
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi