Files
nextcloud-notify-push/chart/test.sh
T
feedc0de 80acc522d8
Validate, publish and promote nextcloud-notify-push chart / chart (push) Successful in 33s
Publish portable nextcloud-notify-push chart
2026-10-20 09:31:49 +02:00

29 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
chart_name=$(basename "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/nextcloud-notify-push" && pwd)")
chart_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/nextcloud-notify-push" && pwd)
helm lint "$chart_dir" --strict
python3 - "$chart_dir" "$chart_name" <<'PY'
import subprocess,sys,yaml
chart,name=sys.argv[1:]
with open(chart+'/Chart.yaml') as f: metadata=yaml.safe_load(f)
def render(*args):
output=subprocess.check_output(['helm','template',name,chart,'--namespace','nextcloud',*args],text=True)
return {(x['kind'],x['metadata']['name']):x for x in yaml.safe_load_all(output) if x}
default=render()
enabled=render('--set','ingress.enabled=true','--set','monitoring.enabled=true')
assert ('Service',name) in default
assert ('Ingress',name) not in default
if name!='nextcloud-clamav':
assert ('Ingress',name) in enabled
if name=='nextcloud-notify-push':
assert ('ServiceMonitor',name) in enabled
else:
assert ('Deployment',name) in default
images=[c['image'] for c in default['Deployment',name]['spec']['template']['spec'].get('initContainers',[])+default['Deployment',name]['spec']['template']['spec']['containers']]
assert all(image.endswith(':'+metadata['appVersion']) for image in images)
if name=='nextcloud-clamav':
assert ('PersistentVolumeClaim',name) in default
assert not any(kind=='Secret' for kind,_ in enabled)
PY