60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
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
|