stages: - check - build check: image: golangci/golangci-lint:v1.53.3-alpine script: - golangci-lint run --timeout 3m stage: check release-image: stage: build image: docker:latest services: - docker:dind variables: DOCKER_HOST: tcp://docker:2376 DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" before_script: - until docker info; do sleep 1; done - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker info script: - export TAGS="" - export VERSION="dev" - | if [[ -n "$CI_APPLICATION_TAG" ]]; then export TAGS="$TAGS -t $CI_REGISTRY_IMAGE:$CI_APPLICATION_TAG" export VERSION="$CI_APPLICATION_TAG" elif [[ -z "$CI_COMMIT_TAG" ]]; then export TAGS="$TAGS -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA" export TAGS="$TAGS -t $CI_REGISTRY_IMAGE:dev" else export TAGS="$TAGS -t $CI_REGISTRY_IMAGE:latest" export TAGS="$TAGS -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" export VERSION="$CI_COMMIT_TAG" fi - docker build . -f Dockerfile --build-arg VERSION=${VERSION} $TAGS - docker push -a $CI_REGISTRY_IMAGE