2019-12-22 02:53:11 +00:00
|
|
|
---
|
2020-08-08 06:56:51 +01:00
|
|
|
#--------------------------------------------------------#
|
|
|
|
# Hidden job templates for Docker build/publish pipeline #
|
|
|
|
#--------------------------------------------------------#
|
2020-08-08 04:36:13 +01:00
|
|
|
.docker-build-setup:
|
|
|
|
image: docker:19.03.12
|
2019-12-22 02:53:11 +00:00
|
|
|
services:
|
2020-08-04 00:50:01 +01:00
|
|
|
- docker:19.03.12-dind
|
2020-08-08 04:36:13 +01:00
|
|
|
before_script:
|
2020-08-09 05:08:30 +01:00
|
|
|
- apk add --no-cache go
|
2019-12-22 02:53:11 +00:00
|
|
|
|
2020-08-08 04:36:13 +01:00
|
|
|
.dockerfile-lint:
|
|
|
|
stage: test
|
|
|
|
image: hadolint/hadolint:v1.18.0-alpine
|
|
|
|
script:
|
|
|
|
- "hadolint docker/Dockerfile"
|
|
|
|
|
|
|
|
.dockerbuild-test:
|
|
|
|
stage: test
|
|
|
|
extends: .docker-build-setup
|
2019-12-22 02:53:11 +00:00
|
|
|
|
2020-08-08 06:56:51 +01:00
|
|
|
.docker-test-rules:
|
|
|
|
rules:
|
2020-09-13 22:50:17 +01:00
|
|
|
- changes:
|
2020-08-08 06:56:51 +01:00
|
|
|
- "docker/Dockerfile"
|
2020-09-13 22:50:17 +01:00
|
|
|
- "*.go"
|
2020-08-08 06:56:51 +01:00
|
|
|
when: always
|
2020-08-15 20:22:00 +01:00
|
|
|
- if: '$CI_COMMIT_REF_NAME =~ /^[0-9]{4}(.[0-9]{2}){2}$/'
|
|
|
|
when: never
|
2020-08-08 06:56:51 +01:00
|
|
|
|
|
|
|
.docker-publish-pre-post:
|
2020-08-08 04:36:13 +01:00
|
|
|
stage: publish
|
|
|
|
extends: .docker-build-setup
|
|
|
|
before_script:
|
2020-08-09 05:08:30 +01:00
|
|
|
- apk add --no-cache go
|
2020-08-08 04:36:13 +01:00
|
|
|
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
|
|
|
|
after_script:
|
|
|
|
- docker logout ${CI_REGISTRY}
|
2019-12-22 02:53:11 +00:00
|
|
|
|
2020-08-08 06:56:51 +01:00
|
|
|
.docker-publish-rules:
|
2020-08-08 04:36:13 +01:00
|
|
|
rules:
|
2020-09-13 22:50:17 +01:00
|
|
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "dananglin/cv" && $CI_PIPELINE_SOURCE == "web" && $BUILD_DOCKER_IMAGE == "true"'
|
2020-08-08 04:36:13 +01:00
|
|
|
when: always
|
|
|
|
|
2020-08-08 06:56:51 +01:00
|
|
|
#------------------------------------------------#
|
|
|
|
# Visible jobs for Docker build/publish pipeline #
|
|
|
|
#------------------------------------------------#
|
|
|
|
|
2020-08-08 04:36:13 +01:00
|
|
|
test:dockerfile:lint:
|
|
|
|
extends:
|
|
|
|
- .dockerfile-lint
|
2020-08-08 06:56:51 +01:00
|
|
|
- .docker-test-rules
|
2020-08-08 04:36:13 +01:00
|
|
|
|
|
|
|
test:docker:build:
|
2019-12-22 02:53:11 +00:00
|
|
|
extends:
|
2020-08-08 04:36:13 +01:00
|
|
|
- .dockerbuild-test
|
2020-08-08 06:56:51 +01:00
|
|
|
- .docker-test-rules
|
2019-12-22 02:53:11 +00:00
|
|
|
script:
|
2020-08-09 05:08:30 +01:00
|
|
|
- go run mage.go image
|
2019-12-22 02:53:11 +00:00
|
|
|
|
|
|
|
publish:docker-image:
|
|
|
|
extends:
|
2020-08-08 06:56:51 +01:00
|
|
|
- .docker-publish-pre-post
|
|
|
|
- .docker-publish-rules
|
2019-12-22 02:53:11 +00:00
|
|
|
script:
|
2020-08-09 05:08:30 +01:00
|
|
|
- go run mage.go publishImage
|