name: 'Comment usage instructions on PRs'
description: 'Comment usage instructions on PRs'

inputs:
  tag:
    description: "Image tag to pull"
    required: true

runs:
  using: "composite"
  steps:
    - name: Generate config
      id: ev
      shell: python
      run: |
        """Helper script to get the actual branch name, docker safe"""
        import os
        from time import time

        env_pr_branch = "GITHUB_HEAD_REF"
        default_branch = "GITHUB_REF"
        sha = "GITHUB_SHA"

        branch_name = os.environ[default_branch]
        if os.environ.get(env_pr_branch, "") != "":
            branch_name = os.environ[env_pr_branch]

        should_build = str(os.environ.get("DOCKER_USERNAME", "") != "").lower()

        print("##[set-output name=branchName]%s" % branch_name)
        print(
            "##[set-output name=branchNameContainer]%s"
            % branch_name.replace("refs/heads/", "").replace("/", "-")
        )
        print("##[set-output name=timestamp]%s" % int(time()))
        print("##[set-output name=sha]%s" % os.environ[sha])
        print("##[set-output name=shouldBuild]%s" % should_build)

        import configparser
        parser = configparser.ConfigParser()
        parser.read(".bumpversion.cfg")
        version = parser.get("bumpversion", "current_version")
        version_family = ".".join(version.split(".")[:-1])
        print("##[set-output name=version]%s" % version)
        print("##[set-output name=versionFamily]%s" % version_family)
    - name: Find Comment
      uses: peter-evans/find-comment@v2
      id: fc
      with:
        issue-number: ${{ github.event.pull_request.number }}
        comment-author: 'github-actions[bot]'
        body-includes: authentik PR Installation instructions
    - name: Create or update comment
      uses: peter-evans/create-or-update-comment@v2
      with:
        comment-id: ${{ steps.fc.outputs.comment-id }}
        issue-number: ${{ github.event.pull_request.number }}
        body: |
          authentik PR Installation instructions

          <details>
            <summary>Instructions for docker-compose</summary>

            Add the following block to your `.env` file:

            ```shell
            AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
            AUTHENTIK_TAG=${{ inputs.tag }}
            AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
            ```

            Afterwards, run the upgrade commands from the latest release notes.
          </details>
          <details>
            <summary>Instructions for Kubernetes</summary>

            Add the following block to your `values.yml` file:

            ```yaml
            authentik:
                outposts:
                    container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
            image:
                repository: ghcr.io/goauthentik/dev-server
                tag: ${{ inputs.tag }}
                # pullPolicy: Always to ensure you always get the latest version
                pullPolicy: Always
            ```

            Afterwards, run the upgrade commands from the latest release notes.
          </details>
        edit-mode: replace
