CV/.gitlab/ci/docker-gitlab-ci.yml
Dan Anglin ef50b88032
ci: workflow and rules
This commit brings the CI pipeline configuration up to date.

Changes include:

- add workflow rules.
- remove only/except syntax in favourof rules.
- update ref to CV builder image.
- add Dockerfile linting as part of the test stage.
- fix linting issues in Dockerfile.
2020-08-08 04:36:13 +01:00

58 lines
1.2 KiB
YAML

---
.docker-build-setup:
image: docker:19.03.12
services:
- docker:19.03.12-dind
before_script:
- apk add --no-cache make
.dockerfile-lint:
stage: test
image: hadolint/hadolint:v1.18.0-alpine
script:
- "hadolint docker/Dockerfile"
.dockerbuild-test:
stage: test
extends: .docker-build-setup
.docker-publish:
stage: publish
extends: .docker-build-setup
before_script:
- apk add --no-cache make
- docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}
after_script:
- docker logout ${CI_REGISTRY}
.test-docker-rules:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- "docker/Dockerfile"
when: always
test:dockerfile:lint:
extends:
- .dockerfile-lint
- .test-docker-rules
test:docker:build:
extends:
- .dockerbuild-test
- .test-docker-rules
script:
- make image
publish:docker-image:
extends:
- .docker-publish
script:
- make publish
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "dananglin/cv"'
changes:
- "docker/Dockerfile"
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never