--- #--------------------------------------------------------# # Hidden job templates for Docker build/publish pipeline # #--------------------------------------------------------# .docker-build-setup: image: docker:19.03.12 services: - docker:19.03.12-dind before_script: - apk add --no-cache go .dockerfile-lint: stage: test image: hadolint/hadolint:v2.8.0-alpine script: - "hadolint docker/Dockerfile" .dockerbuild-test: stage: test extends: .docker-build-setup .docker-test-rules: rules: - changes: - "docker/Dockerfile" - "*.go" when: always - if: '$CI_COMMIT_REF_NAME =~ /^[0-9]{4}(.[0-9]{2}){2}$/' when: never .docker-publish-pre-post: stage: publish extends: .docker-build-setup before_script: - apk add --no-cache go - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} after_script: - docker logout ${CI_REGISTRY} .docker-publish-rules: rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "dananglin/cv" && $CI_PIPELINE_SOURCE == "web" && $BUILD_DOCKER_IMAGE == "true"' when: always #------------------------------------------------# # Visible jobs for Docker build/publish pipeline # #------------------------------------------------# test:dockerfile:lint: extends: - .dockerfile-lint - .docker-test-rules test:docker:build: extends: - .dockerbuild-test - .docker-test-rules script: - go run mage.go image publish:docker-image: extends: - .docker-publish-pre-post - .docker-publish-rules script: - go run mage.go publishImage