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 env: REGISTRY: ${{ inputs.registry }} HELM_USER: ${{ secrets.CI_BOT_USERNAME }} HELM_PASS: ${{ secrets.CI_BOT_TOKEN }} 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 "$HELM_PASS" | helm registry login "$REGISTRY" \ --username "$HELM_USER" \ --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://$REGISTRY