name: Make updated OS images available on release

on:
  release:
    types: [published]
  workflow_dispatch:
    inputs:
      tag:
        description: "Semantic version tag of the release (vX.Y.Z)."
        required: true
      latest:
        description: "Whether to update the latest tag."
        type: boolean
        default: false

jobs:
  update:
    runs-on: ubuntu-22.04
    permissions:
      id-token: write
      contents: read
    steps:
      - name: Checkout
        uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
        with:
          ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}

      - name: Setup Go environment
        uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
        with:
          go-version: "1.19.4"
          cache: true

      - name: Login to AWS
        uses: aws-actions/configure-aws-credentials@67fbcbb121271f7775d2e7715933280b06314838 # v1.7.0
        with:
          role-to-assume: arn:aws:iam::795746500882:role/GithubAddReleaseVersion
          aws-region: eu-central-1

      - name: Update OS images
        working-directory: hack/add-version
        run: |
          latest=$([[ "${{ inputs.latest }}" = "true" ]] && echo "--latest" || echo "")
          go run main.go \
            --version "${{ github.event.release.tag_name }}${{ github.event.inputs.tag }}" \
            --stream stable \
            --release \
            "${latest}"
