---
name: build_terraform

# This workflow is intended to be called by the build workflow. The crt make
# targets that are utilized automatically determine build metadata and
# handle building and packing Terraform.

on:
  workflow_call:
    inputs:
      cgo-enabled:
        type: string
        default: 0
        required: true
      goos:
        required: true
        type: string
      goarch:
        required: true
        type: string
      go-version:
        type: string
      package-name:
        type: string
        default: terraform
      product-version:
        type: string
        required: true
      ld-flags:
        type: string
        required: true
      runson:
        type: string
        required: true

jobs:
  build:
    runs-on: ${{ inputs.runson }}
    name: Terraform ${{ inputs.goos }} ${{ inputs.goarch }} v${{ inputs.product-version }}
    steps:
      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
      - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1
        with:
          go-version: ${{ inputs.go-version }}
      - name: Determine artifact basename
        run: echo "ARTIFACT_BASENAME=${{ inputs.package-name }}_${{ inputs.product-version }}_${{ inputs.goos }}_${{ inputs.goarch }}.zip" >> $GITHUB_ENV
      - name: Build Terraform
        env:
          GOOS: ${{ inputs.goos }}
          GOARCH: ${{ inputs.goarch }}
          GO_LDFLAGS: ${{ inputs.ld-flags }}
          ACTIONSOS: ${{ inputs.runson }}
          CGO_ENABLED: ${{ inputs.cgo-enabled }}
        uses: hashicorp/actions-go-build@v0.1.7
        with:
          product_name: ${{ inputs.package-name }}
          product_version: ${{ inputs.product-version }}
          go_version: ${{ inputs.go-version }}
          os: ${{ inputs.goos }}
          arch: ${{ inputs.goarch }}
          reproducible: nope
          instructions: |-
            mkdir dist out
            set -x
            go build -ldflags "${{ inputs.ld-flags }}" -o dist/ .
            zip -r -j out/${{ env.ARTIFACT_BASENAME }} dist/
      - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
        with:
          name: ${{ env.ARTIFACT_BASENAME }}
          path: out/${{ env.ARTIFACT_BASENAME }}
          if-no-files-found: error
      - if: ${{ inputs.goos == 'linux' }}
        uses: hashicorp/actions-packaging-linux@v1
        with:
          name: "terraform"
          description: "Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned."
          arch: ${{ inputs.goarch }}
          version: ${{ inputs.product-version }}
          maintainer: "HashiCorp"
          homepage: "https://terraform.io/"
          license: "MPL-2.0"
          binary: "dist/terraform"
          deb_depends: "git"
          rpm_depends: "git"
      - if: ${{ inputs.goos == 'linux' }}
        name: Determine package file names
        run: |
          echo "RPM_PACKAGE=$(basename out/*.rpm)" >> $GITHUB_ENV
          echo "DEB_PACKAGE=$(basename out/*.deb)" >> $GITHUB_ENV
      - if: ${{ inputs.goos == 'linux' }}
        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
        with:
          name: ${{ env.RPM_PACKAGE }}
          path: out/${{ env.RPM_PACKAGE }}
          if-no-files-found: error
      - if: ${{ inputs.goos == 'linux' }}
        uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
        with:
          name: ${{ env.DEB_PACKAGE }}
          path: out/${{ env.DEB_PACKAGE }}
          if-no-files-found: error
