diff --git a/.gitea/workflows/buildcharts.yaml b/.gitea/workflows/buildcharts.yaml new file mode 100644 index 0000000..1dec75d --- /dev/null +++ b/.gitea/workflows/buildcharts.yaml @@ -0,0 +1,46 @@ +name: Package and publish helm chart + +on: + push: + branches: + - main +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: build helm package + shell: bash + env: + PACKAGE_TOKEN: ${{ secrets.REPO_HOST }} + 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}/charts/${chart} + CHART_NAME=$(yq .name Chart.yaml) + CHART_VERSION=$(yq .version Chart.yaml) + echo "Packaging ${CHART_NAME}-${CHART_VERSION} + helm package $REPO_PATH + 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