name: Release Helm Chart on: push: tags: - v* workflow_dispatch: inputs: channel: description: 'Release channel (master, edge, or leave blank for tag-based)' required: false default: 'master' jobs: release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Set up Helm uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4.3.1 - name: Log in to GHCR uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Update Helm Dependencies run: helm dependency update ./chart - name: Determine Chart Version id: version run: | if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then TAG="${{ github.event.inputs.channel }}" else TAG=$(echo ${GITHUB_REF#refs/tags/} | sed 's/^v//') fi echo "TAG=$TAG" >> "${GITHUB_ENV}" echo "Using chart version: $TAG" - name: Package Helm Chart run: helm package ./chart --version $TAG --app-version $TAG - name: Build Helm-safe repo name run: | REPO_NAME="$(echo "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER}/helm-charts" | tr '[:upper:]' '[:lower:]')" echo "REPO_NAME=${REPO_NAME}" >> "${GITHUB_ENV}" - name: Push Helm Chart to GHCR run: helm push kyoo-*.tgz "${REPO_NAME}"