Files
common-workflows/.gitea/workflows/release.yaml
2025-09-30 13:51:48 +02:00

63 lines
1.7 KiB
YAML

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
# Get Helm dependencies
- name: Update Helm dependencies
run: |
helm dependency update ${{ inputs.chart-path }}
# 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 }}