variables: IMAGE_VERSION: $CI_COMMIT_SHORT_SHA IMAGE_TYPE: users default: image: debian:11 services: - name: docker:24.0.7-dind alias: docker stages: - build - test - release - release-latest before_script: - id - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u gnomezworc -p $DOCKERHUB_TOKEN build: stage: build image: docker:23.0.3-cli artifacts: paths: - $IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz variables: DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: /certs/client DOCKER_PATH: '.' script: - docker build --pull -t $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release --target release $DOCKER_PATH - docker save $CI_REGISTRY_IMAGE:$IMAGE_VERSION-release | gzip > $IMAGE_TYPE-$IMAGE_VERSION-release.tar.gz integration_test: stage: test image: golang:1.21-alpine variables: DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: /certs/client DOCKER_HOST: tcp://docker:2376/ DOCKER_URL: docker before_script: - apk update && apk add --no-cache docker-cli - apk add bash - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u gnomezworc -p $DOCKERHUB_TOKEN script: - bash -ex ./scripts/prepar_test.sh - . ./config/test.src - go test -v ./cmd/ needs: - build