ci: fix pipeline workflow and job rules

- use upstream template workflow.
- always run CV test jobs unless certain files are changed.
- clean up Dockerfile test job rules.
- clean up publish job rules.
This commit is contained in:
Dan Anglin 2020-08-08 06:56:51 +01:00
parent ef50b88032
commit ac558faaa9
No known key found for this signature in database
GPG key ID: 7AC2B18EC1D09F27
3 changed files with 54 additions and 50 deletions

View file

@ -1,10 +1,4 @@
---
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
stages:
- test
- publish
@ -14,5 +8,6 @@ variables:
IMAGE_TAG: ${CI_COMMIT_REF_SLUG}-${CI_COMMIT_SHORT_SHA}
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
- local: '/.gitlab/ci/docker-gitlab-ci.yml'
- local: '/.gitlab/ci/cv-gitlab-ci.yml'

View file

@ -1,35 +1,37 @@
---
#--------------------------------------------#
# Hidden job templates for CV build pipeline #
#--------------------------------------------#
.use-cv-builder:
image: ${IMAGE_NAME}:master-cb8a29c7
.test-conditions:
.cv-test-rules:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: always
- if:
changes:
- docker/Dockerfile
- __output/*
- changes:
- "docker/Dockerfile"
- "__output/*"
when: never
- when: always
.publish-conditions:
.cv-publish-rules:
rules:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "dananglin/cv"'
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- if:
changes:
- docker/Dockerfile
- __output/*
- changes:
- "docker/Dockerfile"
- "__output/*"
when: never
#------------------------------------#
# Visible jobs for CV build pipeline #
#------------------------------------#
test:spellcheck:
before_script:
- apt-get update
- apt-get -y install aspell make
extends:
- .test-conditions
- .cv-test-rules
image: ubuntu:18.04
stage: test
script:
@ -42,7 +44,7 @@ test:pdf:
- __output/cv.pdf
extends:
- .use-cv-builder
- .test-conditions
- .cv-test-rules
stage: test
script:
- make clean pdf
@ -50,7 +52,7 @@ test:pdf:
publish:pdf:
extends:
- .use-cv-builder
- .publish-conditions
- .cv-publish-rules
before_script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -

View file

@ -1,4 +1,7 @@
---
#--------------------------------------------------------#
# Hidden job templates for Docker build/publish pipeline #
#--------------------------------------------------------#
.docker-build-setup:
image: docker:19.03.12
services:
@ -16,7 +19,13 @@
stage: test
extends: .docker-build-setup
.docker-publish:
.docker-test-rules:
rules:
- changes:
- "docker/Dockerfile"
when: always
.docker-publish-pre-post:
stage: publish
extends: .docker-build-setup
before_script:
@ -25,34 +34,32 @@
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
.docker-publish-rules:
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
#------------------------------------------------#
# 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:
- make image
publish:docker-image:
extends:
- .docker-publish-pre-post
- .docker-publish-rules
script:
- make publish