name: Build operator manually

on:
  workflow_dispatch:
    inputs:
      imageTag:
        description: "Container image tag."
        required: false

jobs:
  build-operator-manual:
    runs-on: ubuntu-22.04
    permissions:
      contents: read
      packages: write
    steps:
      - name: Check out repository
        id: checkout
        uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # tag=v3.1.0
        with:
          ref: ${{ github.head_ref }}

      - name: Setup Go environment
        uses: actions/setup-go@d0a58c1c4d2b25278816e339b944508c875f3613 # v3.4.0
        with:
          go-version: "1.19.3"

      - name: Build and upload constellation-node-operator container image
        uses: ./.github/actions/build_operator
        with:
          name: node-operator
          sourceDir: operators/constellation-node-operator
          githubToken: ${{ secrets.GITHUB_TOKEN }}
          pushTag: ${{ inputs.imageTag }}
          cosignPublicKey: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PUBLIC_KEY || secrets.COSIGN_DEV_PUBLIC_KEY }}
          cosignPrivateKey: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PRIVATE_KEY || secrets.COSIGN_DEV_PRIVATE_KEY }}
          cosignPassword: ${{ startsWith(github.ref, 'refs/heads/release/v') && secrets.COSIGN_PASSWORD || secrets.COSIGN_DEV_PASSWORD }}