distributable:
  url: https://github.com/werf/werf/archive/v{{version}}.tar.gz
  strip-components: 1

versions:
  github: werf/werf

dependencies:
  linux:
    github.com/kdave/btrfs-progs: ^6.7
    sourceware.org/dm: ^2.3

build:
  dependencies:
    go.dev: ^1.21
    linux:
      gnu.org/gcc: '*'
      gnu.org/binutils: '*' # some go packages demand ld.gold
  script: go build $ARGS -ldflags="$LD_FLAGS" -tags="$TAGS" ./cmd/werf
  env:
    TAGS:
      - dfrunsecurity
      - dfrunnetwork
      - dfrunmount
      - dfssh
      - containers_image_openpgp
    LD_FLAGS:
      - -s
      - -w
      - -X github.com/werf/werf/pkg/werf.Version={{version}}
      - -X github.com/werf/werf/v2/pkg/werf.Version={{version}}
    linux:
      LD_FLAGS:
        - -linkmode external
        - -extldflags=-static
        - -buildmode=pie
      TAGS:
        - osusergo
        - exclude_graphdriver_devicemapper
        - netgo
        - no_devmapper
        - static_build
    ARGS:
      - -v
      - -trimpath
      - -o={{prefix}}/bin/werf

provides:
  - bin/werf

test:
  dependencies:
    git-scm.org: '*'
  script:
    - werf version | grep {{version}}
    - run: cp $FIXTURE werf.yaml
      fixture: |
        configVersion: 1
        project: quickstart-application
        ---
        image: vote
        dockerfile: Dockerfile
        context: vote
        ---
        image: result
        dockerfile: Dockerfile
        context: result
        ---
        image: worker
        dockerfile: Dockerfile
        context: worker
    - git init
    - git config user.email "bot@pkgx.dev"
    - git config user.name "pkgxbot"
    - git add werf.yaml
    - git commit -m "Initial commit"
    - run: werf config list | grep result
      if: <1.2
    - run: werf config graph | grep result
      if: '>=1.2'
