distributable:
  url: https://github.com/safe-waters/docker-lock/archive/refs/tags/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: safe-waters/docker-lock

provides:
  - bin/docker-lock

dependencies:
  docker.com/cli: "*"
  curl.se/ca-certs: '*'

build:
  dependencies:
    go.dev: ^1.19
  script: |
    go mod download
    mkdir -p "{{ prefix }}"/bin
    go build -v -trimpath -ldflags="$LDFLAGS" -o $BUILDLOC ./cmd/docker-lock
  env:
    GOPROXY: https://proxy.golang.org,direct
    GOSUMDB: sum.golang.org
    GO111MODULE: on
    CGO_ENABLED: 0
    BUILDLOC: '{{prefix}}/bin/docker-lock'
    LDFLAGS:
      - -s
      - -w
      - -X github.com/safe-waters/docker-lock/cmd/version.Version={{version}}
    linux:
      # or segmentation fault
      # fix found here https://github.com/docker-library/golang/issues/402#issuecomment-982204575
      LDFLAGS:
      - -buildmode=pie

test:
  script:
    - docker-lock help
    - test "$(docker-lock lock version)" = "{{version}}"
    - cat $FIXTURE >Dockerfile
    - docker-lock lock generate
    - grep \"tag\":\ \"3.6\", docker-lock.json
  fixture: |
    FROM ubuntu AS base
    FROM mperel/log:v1
    FROM python:3.6
