diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..0a02071a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,46 @@ +image: + name: alpine/helm:latest + entrypoint: [ "/bin/bash", "-c" ] + +stages: + - release + +release: + stage: release + rules: + - if: '$CI_COMMIT_BRANCH =~ /^main/' + when: always + - when: never + script: + - | + cd $CI_PROJECT_DIR + for i in $(git show --pretty="" --name-only | grep '^[^/]*/chart/Chart.yaml' | cut -d/ -f1); do + pack=$(helm package $i/chart | sed 's/Success.*: \(.*\)/\1/') + if [ ! -z $pack ]; then + chart=$(basename $pack) + curl --request POST \ + --user gitlab-ci-token:$CI_JOB_TOKEN \ + --form "chart=@${chart}" \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts" + fi + done + +rebuild: + stage: release + rules: + - when: manual + allow_failure: true + script: + - | + cd $CI_PROJECT_DIR + for i in $(find -maxdepth 3 -name Chart.yaml | cut -d/ -f2); do + pack=$(helm package $i/chart | sed 's/Success.*: \(.*\)/\1/') + if [ ! -z $pack ]; then + chart=$(basename $pack) + curl --request POST \ + --user gitlab-ci-token:$CI_JOB_TOKEN \ + --form "chart=@${chart}" \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts" + fi + done +