name: Release Helm Chart
description: "Creates a PR in edgelesssys/helm to publish a new Chart."

inputs:
  chartPath:
    description: "Path to chart that should be published"
    required: true
  githubToken:
    description: "GitHub token"
    required: true

runs:
  using: "composite"
  steps:
    - name: Checkout
      uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
      with:
        repository: edgelesssys/helm
        ref: main
        path: helm

    - name: Update s3proxy Chart version
      id: update-chart-version
      shell: bash
      run: |
        helm package ${{ inputs.chartPath }} --destination helm/stable
        cd helm
        helm repo index stable --url https://helm.edgeless.systems/stable
        echo version=$(yq eval ".version" ${{ inputs.chartPath }}/Chart.yaml) | tee -a $GITHUB_OUTPUT

    - name: Create pull request
      uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2
      with:
        path: helm
        branch: "release/s3proxy/${{ steps.update-chart-version.outputs.version }}"
        base: main
        title: "s3proxy: release version ${{ steps.update-chart-version.outputs.version }}"
        body: |
          :robot: *This is an automated PR.* :robot:

          This PR is triggered as part of the Constellation [release pipeline](https://github.com/edgelesssys/constellation/actions/runs/${{ github.run_id }}).
          It adds a new packaged chart to the repo's stable stream.
        commit-message: "s3proxy: release version ${{ steps.update-chart-version.outputs.version }}"
        committer: edgelessci <edgelessci@users.noreply.github.com>
        # We need to push changes using a token, otherwise triggers like on:push and on:pull_request won't work.
        token: ${{ !github.event.pull_request.head.repo.fork && inputs.githubToken || '' }}
