charts/.gitlab-ci.yml
Alexander Olofsson 41549f0851
Avoid uploading duplicate chart instances
Related to GL epic 5070
2021-09-23 09:11:59 +02:00

51 lines
1.6 KiB
YAML

---
stages:
- test
- deploy
lint:charts:
image:
name: codenest/helm
entrypoint: ["/bin/sh", "-c"]
stage: test
script:
- helm lint charts/*
pages:
image:
name: codenest/helm
entrypoint: ["/bin/sh", "-c"]
stage: deploy
before_script:
- grep 'repository:' charts/*/Chart.yaml | awk '{ print $3 }' | uniq | xargs -rn1 sh -c 'helm repo add $(basename $0) $0'
- helm repo update
- ls -d1 charts/* | xargs -rn1 helm dependency build --skip-refresh
script:
- mkdir -p public
- "echo \"User-Agent: *\nDisallow: /\" > ./public/robots.txt"
- (cd public; helm package ../charts/*)
- helm repo index public --url ${CI_PAGES_URL}
artifacts:
paths:
- public
only:
- master@ananace/charts
push:
image:
name: codenest/helm
entrypoint: ["/bin/sh", "-c"]
stage: deploy
before_script:
- grep 'repository:' charts/*/Chart.yaml | awk '{ print $3 }' | uniq | xargs -rn1 sh -c 'helm repo add $(basename $0) $0'
- helm repo update
- ls -d1 charts/* | xargs -rn1 helm dependency build --skip-refresh
script:
- mkdir -p packaged
- (cd packaged; helm package ../charts/*)
- ls -d1 packaged/* | xargs -rn1 sh -c '
curl --user gitlab-ci-token:$CI_JOB_TOKEN "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/stable/charts/$(basename $0)" -Iso /dev/null -w "%{http_code}" | grep 200 || \
curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@$0" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/${CHANNEL}/charts"
'
variables:
CHANNEL: stable