name: Package and publish helm chart on: push: jobs: package-helm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 name: Check out code - name: Set up Helm uses: azure/setup-helm@v4.2.0 with: version: v3.14.4 - name: Set up yq uses: mikefarah/yq@master - name: Check for changed charts id: changed-files uses: tj-actions/changed-files@v44 with: dir_names: true dir_names_max_depth: '2' files: 'charts/**' - name: Run helm lint on all changed charts shell: bash env: ALL_CHANGED_CHARTS: ${{ steps.changed-files.outputs.all_changed_files }} run: | REPO_PATH=$(git rev-parse --show-toplevel) for chart in ${ALL_CHANGED_CHARTS}; do cd ${REPO_PATH}/${chart} helm dependency build helm lint . done - name: build helm package shell: bash if: gitea.ref == 'refs/heads/main' env: PACKAGE_TOKEN: ${{ secrets.PACKAGE_TOKEN }} CHART_NAME: ${{ steps.chart_name.outputs.result }} CHART_VERSION: ${{ steps.chart_version.outputs.result }} ALL_CHANGED_CHARTS: ${{ steps.changed-files.outputs.all_changed_files }} run: | REPO_PATH=$(git rev-parse --show-toplevel) for chart in ${ALL_CHANGED_CHARTS}; do cd ${REPO_PATH}/${chart} CHART_NAME=$(yq .name Chart.yaml) CHART_VERSION=$(yq .version Chart.yaml) echo "Packaging ${CHART_NAME}-${CHART_VERSION}" helm package . curl -H "Authorization: token $PACKAGE_TOKEN" -X POST --upload-file ${CHART_NAME}-${CHART_VERSION}.tgz https://git.rre.nu/api/packages/jonas/helm/api/charts done