From cbd01fa316e1d8fb825add140be0301bfcdf12d0 Mon Sep 17 00:00:00 2001 From: pieter Date: Tue, 25 Nov 2025 04:47:02 +0000 Subject: [PATCH] =?UTF-8?q?.gitea/workflows/helm-release.yaml=20=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/helm-release.yaml | 106 +++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .gitea/workflows/helm-release.yaml diff --git a/.gitea/workflows/helm-release.yaml b/.gitea/workflows/helm-release.yaml new file mode 100644 index 0000000..8f0289a --- /dev/null +++ b/.gitea/workflows/helm-release.yaml @@ -0,0 +1,106 @@ +# .gitea/workflows/helm-release.yaml +# 汎用Helmチャート公開ワークフロー(全リポジトリ共通) + +name: Helm Chart Release + +on: + push: + branches: + - main + - master + workflow_dispatch: + +env: + REGISTRY_URL: https://git.cafepieters.com + OWNER: helmchart + +jobs: + release-chart: + runs-on: ubuntu-latest + steps: + - name: Checkout + run: | + echo "🔄 Cloning repository..." + git clone --depth 1 $GITHUB_SERVER_URL/$GITHUB_REPOSITORY.git . + echo "✅ Repository cloned" + + - name: Install Helm + run: | + echo "📦 Installing Helm..." + curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash + helm version + echo "✅ Helm installed" + + - name: Get Chart Info + id: chart_info + run: | + # Chart.yamlからチャート名とバージョンを取得 + CHART_NAME=$(grep '^name:' Chart.yaml | awk '{print $2}') + CHART_VERSION=$(grep '^version:' Chart.yaml | awk '{print $2}') + + echo "Chart Name: ${CHART_NAME}" + echo "Chart Version: ${CHART_VERSION}" + + # GitHub Actionsの環境変数として設定 + echo "CHART_NAME=${CHART_NAME}" >> $GITHUB_ENV + echo "CHART_VERSION=${CHART_VERSION}" >> $GITHUB_ENV + + - name: Validate Chart + run: | + echo "🔍 Validating Helm chart..." + helm lint . + echo "✅ Chart validation passed" + + - name: Package Chart + run: | + echo "📦 Packaging Helm chart..." + helm package . + + CHART_FILE=$(ls *.tgz) + echo "✅ Packaged: ${CHART_FILE}" + echo "CHART_FILE=${CHART_FILE}" >> $GITHUB_ENV + + - name: Publish to Gitea Package Registry + run: | + echo "🚀 Publishing ${CHART_FILE} to Gitea Package Registry..." + + 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" + + echo "✅ Chart published successfully!" + + - name: Summary + if: success() + run: | + echo "================================" + echo "✅ Deployment Successful!" + echo "================================" + echo "Repository: ${{ github.repository }}" + echo "Chart Name: ${CHART_NAME}" + echo "Chart Version: ${CHART_VERSION}" + echo "Chart File: ${CHART_FILE}" + echo "Branch: ${{ github.ref }}" + echo "Commit: ${{ github.sha }}" + echo "================================" + echo "" + echo "📦 Install with:" + echo "helm repo add cafepieters ${REGISTRY_URL}/api/packages/${OWNER}/helm" + echo "helm repo update" + echo "helm install my-${CHART_NAME} cafepieters/${CHART_NAME}" + + - name: Error Report + if: failure() + run: | + echo "================================" + echo "❌ Deployment Failed!" + echo "================================" + echo "Check the logs above for details" + echo "Common issues:" + echo "- Missing Chart.yaml" + echo "- Invalid Helm chart structure" + echo "- Missing REGISTRY_USER or REGISTRY_TOKEN secrets" + echo "- Insufficient permissions on Personal Access Token" + echo "================================" \ No newline at end of file