variables:
  HELPERS_FILE: docker-build.yml
  APP_HELM_NAME: task
  DOCKER_FILE: deployment/ci/Dockerfile

stages:
  - compile
  - test
  - build
  - manifest
  - deploy

include:
  - project: '${HELPERS_PATH}'
    file: '${HELPERS_FILE}'
  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'

lint:
  image: golangci/golangci-lint:v1.50.1
  stage: test
  tags:
    - amd64-docker
  before_script:
    - ln -s /builds /go/src/gitlab.com
    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}
  script:
    - go version
    - golangci-lint --version
    - golangci-lint run

unit tests:
  image: golang:1.19.3
  extends: .gotest
  stage: test
  tags:
    - amd64-docker
  before_script: []
  coverage: '/total:\s+\(statements\)\s+(\d+.\d+\%)/'

govulncheck:
  image: golang:1.19.3
  stage: test
  tags:
    - amd64-docker
  before_script:
    - ln -s /builds /go/src/gitlab.com
    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}
  script:
    - go version
    - go install golang.org/x/vuln/cmd/govulncheck@latest
    - govulncheck ./...

amd64:
  extends: .docker-build
  stage: build
  tags:
    - amd64-docker

manifest:
  extends: .manifest-amd64
  stage: manifest

cloud:
  extends: .manifest-cloud
  stage: manifest

release:
  extends: .manifest-release
  stage: manifest