diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b532843..233a8ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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' diff --git a/.gitlab/ci/cv-gitlab-ci.yml b/.gitlab/ci/cv-gitlab-ci.yml index f6f097a..1f03f96 100644 --- a/.gitlab/ci/cv-gitlab-ci.yml +++ b/.gitlab/ci/cv-gitlab-ci.yml @@ -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 - diff --git a/.gitlab/ci/docker-gitlab-ci.yml b/.gitlab/ci/docker-gitlab-ci.yml index 1dfd049..abe790c 100644 --- a/.gitlab/ci/docker-gitlab-ci.yml +++ b/.gitlab/ci/docker-gitlab-ci.yml @@ -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