Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a78f299
helm unittests
MichaelSp Nov 5, 2023
2c871d9
avoid changes in the unittests due to updates in the appVersion
MichaelSp Nov 5, 2023
9a2c2f1
Merge pull request #20 from nextcloud/main
MichaelSp Jan 1, 2024
7b025fd
Merge branch 'main' into helm_unittest
jessebot May 29, 2024
f649ead
Update defaults_test.yaml.snap
jessebot May 29, 2024
11ba09e
Update lint-test.yaml - fix on parameter; add tests directory to chan…
jessebot May 29, 2024
80bd9ba
Merge branch 'main' into helm_unittest
MichaelSp May 31, 2024
0532dd5
Merge branch 'main' into helm_unittest
jessebot Jun 2, 2024
3133bbc
Merge branch 'main' into helm_unittest
jessebot Jul 26, 2024
e81d9d0
Merge branch 'main' into helm_unittest
MichaelSp Jan 6, 2025
ffaa7c5
chore(doc): add hint on unittesting in CONTRIBUTING.md
MichaelSp Jan 6, 2025
59d5922
chore(version): bump helm chart version
MichaelSp Jan 6, 2025
996ed9b
fix(test): update nextcloud-config-hash
MichaelSp Jan 6, 2025
cdc852b
Merge branch 'main' into helm_unittest
MichaelSp Feb 1, 2025
e54276e
Merge branch 'main' into helm_unittest
MichaelSp Mar 2, 2025
10123bb
Merge branch 'main' into helm_unittest
MichaelSp Mar 29, 2025
9f76fc0
Merge branch 'main' into helm_unittest
MichaelSp May 18, 2025
a537038
Merge branch 'main' into helm_unittest
MichaelSp Jul 15, 2025
f8f4b38
Merge branch 'main' into helm_unittest
MichaelSp Aug 16, 2025
a9e4cec
Merge branch 'main' into helm_unittest
MichaelSp Nov 24, 2025
8bdd88e
Update Chart.yaml
MichaelSp Nov 24, 2025
630b1d1
chore: update unittests
MichaelSp Nov 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
name: Lint and Test Charts

on:
pull_request:
paths:
on: [pull_request]
jobs:
changes:
runs-on: ubuntu-latest-low
Expand All @@ -20,6 +18,7 @@ jobs:
- 'charts/nextcloud/Chart.yaml'
- 'charts/nextcloud/values.yaml'
- 'charts/nextcloud/templates/**'
- 'charts/nextcloud/tests/**'

lint:
runs-on: ubuntu-latest-low
Expand Down Expand Up @@ -57,6 +56,13 @@ jobs:
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}

- name: Run helm unittest
id: unittest
if: steps.list-changed.outputs.changed == 'true'
run: |
helm plugin install https://github.com/helm-unittest/helm-unittest.git
helm unittest charts/nextcloud

test:
runs-on: ubuntu-24.04
needs: [changes, lint]
Expand Down
5 changes: 3 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Thanks for considering a contribution to this Nextcloud repository run by the co

# Pull Requests

Before submitting a feature or fix PR, please make sure your changes are targetted to one feature or fix, and all your commits are signed off. (Learn more the DCO [here](https://probot.github.io/apps/dco))
Before submitting a feature or fix PR, please make sure your changes are targeted to one feature or fix, and all your commits are signed off. (Learn more the DCO [here](https://probot.github.io/apps/dco))

If you're making a change to the chart templates or `values.yaml`, please also do the following:

Expand All @@ -13,7 +13,8 @@ If you're making a change to the chart templates or `values.yaml`, please also d
- If you're making a change to a non-default value, please also test that value change locally. You can pass in a custom values file to `helm template` with `--values mycustomvalues.yaml`
3. Test installing the chart. A great tool for this is [`ct`](https://github.com/helm/chart-testing/tree/main) using [`ct install`](https://github.com/helm/chart-testing/blob/main/doc/ct_install.md) on a test cluster like [kind](https://kind.sigs.k8s.io/)
4. Make sure new or changed values are updated in the [values.yaml](./charts/nextcloud/values.yaml) and the [README.md](./charts/nextcloud/README.md)
5. Bump the `version` in the [Chart.yaml](./charts/nextcloud/Chart.yaml) according to [Semantic Versioning](https://semver.org) which uses the format `major.minor.patch`.
5. Run the [helm unittests](https://github.com/helm-unittest/helm-unittest): `helm unittest charts/nextcloud` and if necessary update the tests in the snapshot files in the `tests` directory or run `helm unittest charts/nextcloud --update-snapshots`. For bigger features a new test should be added.
6. Bump the `version` in the [Chart.yaml](./charts/nextcloud/Chart.yaml) according to [Semantic Versioning](https://semver.org) which uses the format `major.minor.patch`.

Then, please make sure you follow the [pull request template](.github/pull_request_template.md), so we can more quickly review. In order to move your PR forward faster (for instance, bumping the helm chart version for you), please also check the "Allow edits and access to secrets by maintainers" box next to the "Create pull request" button:

Expand Down
2 changes: 1 addition & 1 deletion charts/nextcloud/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: nextcloud
version: 8.5.10
version: 8.5.11
# renovate: image=docker.io/library/nextcloud
appVersion: 32.0.2
description: A file sharing server that puts the control and security of your own data back into your hands.
Expand Down
148 changes: 148 additions & 0 deletions charts/nextcloud/tests/__snapshot__/defaults_test.yaml.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
defaults:
1: |
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/component: app
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: nextcloud
app.kubernetes.io/version: 1.2.3
helm.sh/chart: nextcloud-1.0.0
name: RELEASE-NAME-nextcloud
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: app
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: nextcloud
strategy:
type: Recreate
template:
metadata:
annotations:
hooks-hash: 9525c2748a6c7cd0e28ec740623d0b3fa5a75c83b51ccfd136bc89c76737b204
nextcloud-config-hash: 8266a725d5474acb6adbf9f0609a3494dc3340a3ac306db90eac9ddb1b851960
php-config-hash: 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
labels:
app.kubernetes.io/component: app
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: nextcloud
spec:
containers:
- env:
- name: SQLITE_DATABASE
value: nextcloud
- name: NEXTCLOUD_ADMIN_USER
valueFrom:
secretKeyRef:
key: nextcloud-username
name: RELEASE-NAME-nextcloud
- name: NEXTCLOUD_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: nextcloud-password
name: RELEASE-NAME-nextcloud
- name: NEXTCLOUD_TRUSTED_DOMAINS
value: nextcloud.kube.home
- name: NEXTCLOUD_DATA_DIR
value: /var/www/html/data
image: docker.io/library/nextcloud:1.2.3-apache
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Host
value: nextcloud.kube.home
path: /status.php
port: 80
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
name: nextcloud
ports:
- containerPort: 80
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Host
value: nextcloud.kube.home
path: /status.php
port: 80
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
resources: {}
volumeMounts:
- mountPath: /var/www/
name: nextcloud-main
subPath: root
- mountPath: /var/www/html
name: nextcloud-main
subPath: html
- mountPath: /var/www/html/data
name: nextcloud-main
subPath: data
- mountPath: /var/www/html/config
name: nextcloud-main
subPath: config
- mountPath: /var/www/html/custom_apps
name: nextcloud-main
subPath: custom_apps
- mountPath: /var/www/tmp
name: nextcloud-main
subPath: tmp
- mountPath: /var/www/html/themes
name: nextcloud-main
subPath: themes
securityContext:
fsGroup: 33
volumes:
- emptyDir: {}
name: nextcloud-main
2: |
apiVersion: v1
data:
nextcloud-password: Y2hhbmdlbWU=
nextcloud-username: YWRtaW4=
kind: Secret
metadata:
labels:
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: nextcloud
app.kubernetes.io/version: 1.2.3
helm.sh/chart: nextcloud-1.0.0
name: RELEASE-NAME-nextcloud
type: Opaque
3: |
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: app
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: nextcloud
app.kubernetes.io/version: 1.2.3
helm.sh/chart: nextcloud-1.0.0
name: RELEASE-NAME-nextcloud
spec:
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 80
selector:
app.kubernetes.io/component: app
app.kubernetes.io/instance: RELEASE-NAME
app.kubernetes.io/name: nextcloud
type: ClusterIP
14 changes: 14 additions & 0 deletions charts/nextcloud/tests/defaults_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
suite: test my defaults
templates:
- deployment.yaml
- secrets.yaml
- service.yaml
chart:
version: 1.0.0
appVersion: 1.2.3
tests:
- it: defaults
set:
metrics.token: "abcd"
asserts:
- matchSnapshot: { }
Loading