distributable:
  url: https://github.com/hashicorp/terraform/archive/refs/tags/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: hashicorp/terraform/tags
  strip: /^v/

provides:
  - bin/terraform

build:
  script:
    - run: EXTRA="-mod=mod"
      if: <0.12.20
    - go mod download
    - go build -v -ldflags="$LDFLAGS" $EXTRA -o "{{ prefix }}/bin/terraform"
  dependencies:
    go.dev: ^1.18
  env:
    GO111MODULE: on
    LDFLAGS:
      - -s
      - -w
      - -X=github.com/hashicorp/terraform/version.Version={{version}}
      - -X=github.com/hashicorp/terraform/version.dev=no
    linux:
      # or segmentation fault
      # fix found here https://github.com/docker-library/golang/issues/402#issuecomment-982204575
      LDFLAGS:
        - -buildmode=pie

test:
  script:
    - terraform --version | grep '^Terraform v{{version}}$'
    # ^^ test version is set correctly and not suffixed with `-dev`

    - terraform init
    - terraform apply --auto-approve
    - out=$(terraform output fixture)
    - run: test "$out" = '"Hello, World!"'
      if: '>=0.14'
    - run: test "$out" = 'Hello, World!'
      if: <0.14
