Dan Anglin
ef50b88032
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.
58 lines
1.2 KiB
YAML
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
|