instruction: Create a GitHub Actions workflow for CI/CD automation following production best practices
output: ## build-terraform-cli.yml
  
  **Repository:** hashicorp/terraform
  **File Type:** Github Workflow
  **Purpose:** Production configuration from hashicorp project
  
  ```yaml
  ---
  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
          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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        - uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
          with:
            go-version: ${{ inputs.go-version }}
        - 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@d2504eb37c72b06b618352881e3f1d7b563517c5 # v1.1.0
          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: |-
              go build -ldflags "${{ inputs.ld-flags }}" -o "$BIN_PATH" -trimpath -buildvcs=false
              cp LICENSE "$TARGET_DIR/LICENSE.txt"
        - name: Copy license file to config_dir
          if: ${{ inputs.goos == 'linux' }}
          env:
            LICENSE_DIR: ".release/linux/package/usr/share/doc/${{ inputs.package-name }}"
          run: |
            mkdir -p "$LICENSE_DIR" && cp LICENSE "$LICENSE_DIR/LICENSE.txt"
        - if: ${{ inputs.goos == 'linux' }}
          uses: hashicorp/actions-packaging-linux@129994a18b8e7dc106937edf859fddd97af66365 # v1.10
          with:
            name: "terraform"
            description: "Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a 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: "BUSL-1.1"
            binary: "dist/terraform"
            deb_depends: "git"
            rpm_depends: "git"
            config_dir: ".release/linux/package/"
        - 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@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
          with:
            name: ${{ env.RPM_PACKAGE }}
            path: out/${{ env.RPM_PACKAGE }}
            if-no-files-found: error
        - if: ${{ inputs.goos == 'linux' }}
          uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
          with:
            name: ${{ env.DEB_PACKAGE }}
            path: out/${{ env.DEB_PACKAGE }}
            if-no-files-found: error
  
  ```
  
  This GitHub Actions workflow demonstrates production CI/CD practices including automated testing, building, and deployment.