variables:
  APP_HELM_NAME: policy
  DOCKER_FILE: deployment/ci/Dockerfile
  GOOGLE_IMAGE: ${GOOGLE_LIGHT_REGISTRY_URL}/gaiax/$CI_PROJECT_NAME:$CI_COMMIT_REF_NAME

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

include:
  - project: 'gaiax/tsa/ci-helpers'
    file: 'docker-build.yml'
  - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'

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

unit tests:
  image: golang:1.19
  extends: .gotest
  stage: test
  tags:
    - amd64-docker
  before_script: []

govulncheck:
  image: golang:1.19
  stage: test
  tags:
    - amd64-docker
  before_script:
    - ln -s /builds /go/src/code.vereign.com
    - cd /go/src/code.vereign.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