From f726fe935a535723bdb6725cc0359e204f959c8c Mon Sep 17 00:00:00 2001 From: Swordsteel Date: Tue, 26 Aug 2025 22:03:28 +0200 Subject: [PATCH] release workflow --- .gitea/workflows/release.yaml | 58 +++++++++++++++++++++++++++++++++++ .gitignore | 1 + release.yaml | 58 +++++++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 .gitea/workflows/release.yaml create mode 100644 .gitignore create mode 100644 release.yaml diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..f06c295 --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,58 @@ +name: Helm OCI CI + +on: + workflow_call: + inputs: + chart-path: + description: "Path to the Helm chart directory" + required: false + default: "./helm" + type: string + registry: + description: "OCI registry URL" + required: false + default: "gitea.lulz.ltd/helm" + type: string + secrets: + CI_BOT_USERNAME: + required: true + CI_BOT_TOKEN: + required: true + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + # Checkout repo + - name: Checkout repository + uses: actions/checkout@v3 + + # Install Helm + - name: Set up Helm + uses: azure/setup-helm@v4 + + # Extract chart name & version + - name: Get Chart Info + id: chart + run: | + NAME=$(helm show chart ${{ inputs.chart-path }} | grep '^name:' | awk '{print $2}') + VERSION=$(helm show chart ${{ inputs.chart-path }} | grep '^version:' | awk '{print $2}') + echo "chart_name=$NAME" >> $GITHUB_ENV + echo "chart_version=$VERSION" >> $GITHUB_ENV + + # Login to OCI registry + - name: Helm OCI Login + run: | + echo "${{ secrets.CI_BOT_TOKEN }}" | helm registry login ${{ inputs.registry }} \ + --username ${{ secrets.CI_BOT_USERNAME }} \ + --password-stdin + + # Package Helm chart + - name: Package Helm Chart + run: | + helm package ${{ inputs.chart-path }} + + # Push chart to OCI registry + - name: Push Helm Chart + run: | + helm push ${chart_name}-${chart_version}.tgz oci://${{ inputs.registry }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..62c8935 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file diff --git a/release.yaml b/release.yaml new file mode 100644 index 0000000..f06c295 --- /dev/null +++ b/release.yaml @@ -0,0 +1,58 @@ +name: Helm OCI CI + +on: + workflow_call: + inputs: + chart-path: + description: "Path to the Helm chart directory" + required: false + default: "./helm" + type: string + registry: + description: "OCI registry URL" + required: false + default: "gitea.lulz.ltd/helm" + type: string + secrets: + CI_BOT_USERNAME: + required: true + CI_BOT_TOKEN: + required: true + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + # Checkout repo + - name: Checkout repository + uses: actions/checkout@v3 + + # Install Helm + - name: Set up Helm + uses: azure/setup-helm@v4 + + # Extract chart name & version + - name: Get Chart Info + id: chart + run: | + NAME=$(helm show chart ${{ inputs.chart-path }} | grep '^name:' | awk '{print $2}') + VERSION=$(helm show chart ${{ inputs.chart-path }} | grep '^version:' | awk '{print $2}') + echo "chart_name=$NAME" >> $GITHUB_ENV + echo "chart_version=$VERSION" >> $GITHUB_ENV + + # Login to OCI registry + - name: Helm OCI Login + run: | + echo "${{ secrets.CI_BOT_TOKEN }}" | helm registry login ${{ inputs.registry }} \ + --username ${{ secrets.CI_BOT_USERNAME }} \ + --password-stdin + + # Package Helm chart + - name: Package Helm Chart + run: | + helm package ${{ inputs.chart-path }} + + # Push chart to OCI registry + - name: Push Helm Chart + run: | + helm push ${chart_name}-${chart_version}.tgz oci://${{ inputs.registry }} \ No newline at end of file