name: Build upgrade-agent
description: Build the Constellation upgrade-agent binary

inputs:
  outputPath:
    description: "Output path of the binary"
    default: "./build/upgrade-agent"
    required: true

# Linux runner only (Docker required)
runs:
  using: "composite"
  steps:
    - name: Build the upgrade-agent
      shell: bash
      env:
        OUTPUT_PATH: ${{ inputs.outputPath }}
      run: |
        echo "::group::Build the upgrade-agent"
        mkdir -p "$(dirname "${OUTPUT_PATH}")"
        label="//upgrade-agent/cmd:upgrade_agent_linux_amd64"
        bazel build "${label}"
        repository_root=$(git rev-parse --show-toplevel)
        out_rel=$(bazel cquery --output=files "${label}")
        out_loc="$(realpath "${repository_root}/${out_rel}")"
        cp "${out_loc}" "${OUTPUT_PATH}"
        chmod +w "${OUTPUT_PATH}"
        echo "::endgroup::"
