stages: - test - build run-tests: stage: test image: golang:1.22.4 script: - mkdir -p coverage - bash scripts/run_tests_with_coverage.sh artifacts: paths: - coverage/ reports: coverage_report: coverage_format: cobertura path: coverage/coverage.xml coverage: '/total:\s+\(statements\)\s+(\d+\.\d+)%/' build-image: stage: build image: docker:latest services: - docker:dind script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA $CI_REGISTRY_IMAGE:latest - docker push $CI_REGISTRY_IMAGE:latest rules: - if: $CI_COMMIT_BRANCH == "main" when: on_success