# Build Constellation binaries as quality control
name: Build Constellation binaries

on:
  workflow_dispatch:
  push:
    branches:
      - main
      - "release/**"
    paths:
      - "**.go"
      - "**/go.mod"
      - "**/go.sum"
  pull_request:
    paths:
      - "**.go"
      - "**/go.mod"
      - "**/go.sum"

jobs:
  build-binaries:
    runs-on: [arc-runner-set]
    steps:
      - name: Checkout
        uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
        with:
          ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}

      - name: Setup bazel
        uses: ./.github/actions/setup_bazel_nix
        with:
          useCache: "rbe"
          rbePlatform: "ubuntu-22.04"
          buildBuddyApiKey: ${{ secrets.BUILDBUDDY_ORG_API_KEY }}

      - name: Build all
        shell: bash
        env:
          bootstrapper: "//bootstrapper/cmd/bootstrapper:bootstrapper_linux_amd64"
          debugd: "//debugd/cmd/debugd:debugd_linux_amd64"
          cdbg: "//debugd/cmd/cdbg:all"
          disk_mapper: "//disk-mapper/cmd:disk-mapper_linux_amd64"
          measurement_reader: "//measurement-reader/cmd:measurement-reader_linux_amd64"
          cli: "//cli:all"
          terraform_provider: "//terraform-provider-constellation:all"

        run: |
          bazel build \
            --remote_download_minimal \
            "${bootstrapper}" \
            "${debugd}" \
            "${cdbg}" \
            "${disk_mapper}" \
            "${measurement_reader}" \
            "${cli}" \
            "${terraform_provider}"
