# .gitea/workflows/helm-release.yaml name: Helm Chart Release on: push: branches: - main paths: - 'phpfpm/**' - 'phpmyadmin/**' - 'wordpress/**' - '!**.md' env: REGISTRY_URL: https://git.cafepieters.com OWNER: helmchart jobs: release-charts: runs-on: ubuntu-latest steps: - name: Checkout run: | git clone --depth 1 $GITHUB_SERVER_URL/$GITHUB_REPOSITORY.git . git fetch --depth 1 - name: Install Helm run: | curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash helm version - name: Package and Publish phpfpm if: github.event_name == 'push' run: | if [ -d "phpfpm" ]; then helm package phpfpm/ CHART_FILE=$(ls phpfpm-*.tgz) curl --fail-with-body -u "${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_TOKEN }}" \ -X POST \ --upload-file "${CHART_FILE}" \ "${REGISTRY_URL}/api/packages/${OWNER}/helm/api/charts" rm -f "${CHART_FILE}" fi - name: Package and Publish phpmyadmin if: github.event_name == 'push' run: | if [ -d "phpmyadmin" ]; then helm package phpmyadmin/ CHART_FILE=$(ls phpmyadmin-*.tgz) curl --fail-with-body -u "${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_TOKEN }}" \ -X POST \ --upload-file "${CHART_FILE}" \ "${REGISTRY_URL}/api/packages/${OWNER}/helm/api/charts" rm -f "${CHART_FILE}" fi - name: Package and Publish wordpress if: github.event_name == 'push' run: | if [ -d "wordpress" ]; then helm package wordpress/ CHART_FILE=$(ls wordpress-*.tgz) curl --fail-with-body -u "${{ secrets.REGISTRY_USER }}:${{ secrets.REGISTRY_TOKEN }}" \ -X POST \ --upload-file "${CHART_FILE}" \ "${REGISTRY_URL}/api/packages/${OWNER}/helm/api/charts" rm -f "${CHART_FILE}" fi - name: Generate charts directory run: | mkdir -p charts [ -d "phpfpm" ] && helm package phpfpm/ -d charts/ [ -d "phpmyadmin" ] && helm package phpmyadmin/ -d charts/ [ -d "wordpress" ] && helm package wordpress/ -d charts/ - name: Generate index.yaml run: | helm repo index charts/ --url https://git.cafepieters.com/api/packages/${OWNER}/helm/charts/ - name: Commit and push index.yaml run: | cp charts/index.yaml ./index.yaml git config user.name "Gitea Actions" git config user.email "actions@gitea.com" git add index.yaml git commit -m "chore: update helm index [skip ci]" || exit 0 git push - name: Notify Success if: success() run: echo "✅ All Helm charts published successfully!" - name: Notify Failure if: failure() run: echo "❌ Failed to publish Helm charts"