Newer
Older
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "prod" || $CI_COMMIT_BRANCH == "dev"))
when: always
- when: never
test_job:
stage: test
image: public.ecr.aws/docker/library/golang:1.21
GOARCH=amd64 GOOS=linux CGO_ENABLED=0 go build -ldflags "-X webservice/configuration.version=0.0.1" -o artifact.bin ./*.go
cd metrics
go mod tidy
go build -o ../ping_server server.go
rules:
when: always
image: docker:latest
services:
- docker:dind
- docker build -t $CI_REGISTRY_IMAGE:$version -f Containerfile .
- docker tag $CI_REGISTRY_IMAGE:$version $CI_REGISTRY_IMAGE:latest
- if [[ "$CI_COMMIT_BRANCH" == "prod" ]]; then
docker tag $CI_REGISTRY_IMAGE:$version $CI_REGISTRY_IMAGE:prod;
elif [[ "$CI_COMMIT_BRANCH" == "dev" ]]; then
docker tag $CI_REGISTRY_IMAGE:$version $CI_REGISTRY_IMAGE:dev;
fi
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker push $CI_REGISTRY_IMAGE:$version
- docker push $CI_REGISTRY_IMAGE:latest
- if [[ "$CI_COMMIT_BRANCH" == "prod" ]]; then
docker push $CI_REGISTRY_IMAGE:prod;
elif [[ "$CI_COMMIT_BRANCH" == "dev" ]]; then
docker push $CI_REGISTRY_IMAGE:dev;
fi