Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.14 KiB
---
variables:
  HELPERS_FILE: build-eclipse.yml
  HELM_HELPERS_FILE: helm-eclipse.yml
  APP_HELM_NAME: infohub
  DOCKER_FILE: app/deployment/ci/Dockerfile
  GIT_SUBMODULE_STRATEGY: recursive
  GIT_SUBMODULE_UPDATE_FLAGS: --remote --init --recursive

stages:
  - test
  - getinfo
  - build
  - manifest
  - lint
  - package
  - deploy

include:
  - project: "${HELPERS_PATH}"
    file: "build-eclipse.yml"
  - template: "Workflows/Branch-Pipelines.gitlab-ci.yml"
  - project: "${HELPERS_PATH}"
    file: "helm-eclipse.yml"

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

unit tests:
  image: golang:1.21.5
  stage: test
  tags:
    - amd64-docker
  script:
    - go version
    - go test $(go list ./... | grep -v /integration) -race -coverprofile=coverage.out
    - go tool cover -func=coverage.out
  before_script:
    - ln -s /builds /go/src/gitlab.com
    - cd /go/src/gitlab.com/${CI_PROJECT_PATH}/app
  coverage: '/total:\s+\(statements\)\s+(\d+.\d+\%)/'

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

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

manifest:
  extends: .manifest
  stage: manifest

cloud:
  extends: .manifest-cloud
  stage: manifest

release:
  extends: .manifest-release
  stage: manifest

helm-lint:
  image: ${HELM_IMAGE}
  extends: .helm-lint
  stage: lint
  tags:
    - amd64-docker

helm-package:
  image: ${HELM_IMAGE}
  extends: .helm-package
  stage: package
  tags:
    - amd64-docker
  needs: ["helm-lint"]

deploy-dev-ssi:
  extends: .deploy-tsa
  stage: deploy
  variables:
    CLUSTER: dev-ssi

deploy-vault:
  extends: .deploy-tsa
  stage: deploy
  variables:
    CLUSTER: prod-ssi