default: image: docker:git stages: - test - build test:go: stage: test image: golang:alpine variables: GOPATH: $CI_PROJECT_DIR/.go before_script: - mkdir -p .go script: - go mod download - go test ./... -v -coverprofile=coverage.txt -covermode count - go get github.com/boumenot/gocover-cobertura - go run github.com/boumenot/gocover-cobertura < coverage.txt > coverage.xml cache: paths: - .go/pkg/mod/ artifacts: reports: coverage_report: coverage_format: cobertura path: coverage.xml test:helm: stage: test image: chainguard/helm:latest script: - helm lint ./deploy - helm template ./deploy --values deploy/values.test.yaml build:httpserver: stage: build variables: IMAGE: $CI_REGISTRY_IMAGE/httpserver TAG: $CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA before_script: - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - docker info script: - docker buildx create --name yggdrasil --use - docker buildx build --provenance=false --platform linux/amd64,linux/arm64 -t $IMAGE:$TAG -f build/package/httpserver/Dockerfile --push . - docker manifest inspect $IMAGE:$TAG build:migrations: stage: build variables: IMAGE: $CI_REGISTRY_IMAGE/migrations TAG: $CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA before_script: - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY - docker info script: - docker buildx create --name yggdrasil --use - docker buildx build --provenance=false --platform linux/amd64,linux/arm64 -t $IMAGE:$TAG -f build/package/migrations/Dockerfile --push . - docker manifest inspect $IMAGE:$TAG