CV/.gitlab/ci/cv-gitlab-ci.yml

129 lines
2.8 KiB
YAML
Raw Normal View History

---
#--------------------------------------------#
# Hidden job templates for CV build pipeline #
#--------------------------------------------#
.use-cv-builder:
image: ${IMAGE_NAME}:master-84b29f04
.cv-default-job-rules:
rules:
- when: always
.cv-publish-job-rules:
rules:
- if: '$CI_COMMIT_REF_NAME =~ /^[0-9]{4}(.[0-9]{2}){2}$/ && $CI_PROJECT_PATH == "dananglin/cv"'
when: always
.default-tags:
tags:
- dananglin-general
.release-tags:
tags:
- dananglin-cv-release
#------------------------------------#
# Visible jobs for CV build pipeline #
#------------------------------------#
test:spellcheck:
extends:
- .cv-default-job-rules
- .default-tags
- .use-cv-builder
script:
- cv-make spellcheck
stage: test
2020-02-07 16:05:30 +00:00
test:pdf:
extends:
- .cv-default-job-rules
- .default-tags
- .use-cv-builder
script:
- cv-make pdf
stage: test
build:pdf:
2020-02-07 16:05:30 +00:00
artifacts:
expire_in: "30 minutes"
2020-02-07 16:05:30 +00:00
paths:
- __output/cv.pdf
extends:
- .default-tags
- .use-cv-builder
needs:
- job: "test:spellcheck"
artifacts: false
- job: "test:pdf"
artifacts: false
rules:
- if: '$CI_MERGE_REQUEST_IID'
when: always
2020-02-07 16:05:30 +00:00
script:
- cv-make pdf
stage: build
2020-02-07 16:05:30 +00:00
build:pdf-for-publish:
artifacts:
expire_in: "1 year"
name: cv-DanAnglin-${CI_COMMIT_REF_NAME}
paths:
- ${RELEASE_CV_FILENAME}
- build_job_id
extends:
- .cv-publish-job-rules
- .default-tags
- .use-cv-builder
needs:
- job: "test:spellcheck"
artifacts: false
- job: "test:pdf"
artifacts: false
script:
- cv-make pdf
- mv __output/cv.pdf ${RELEASE_CV_FILENAME}
- echo "${CI_JOB_ID}" > build_job_id
stage: build
publish:pdf:online:
before_script:
- export BUILD_JOB_ID=$( cat build_job_id )
extends:
- .cv-publish-job-rules
- .release-tags
image: registry.gitlab.com/gitlab-org/release-cli:v0.3.0
needs:
- job: "build:pdf-for-publish"
artifacts: true
script:
- 'echo "Publishing CV for release ${CI_COMMIT_REF_NAME}"'
- >
release-cli create --name "CV - ${CI_COMMIT_REF_NAME}"
--description "CV published with the release-cli tool for version ${CI_COMMIT_REF_NAME}"
--tag-name "${CI_COMMIT_REF_NAME}"
--ref "${CI_COMMIT_REF_NAME}"
--assets-links-name "${RELEASE_CV_FILENAME}"
--assets-links-url "https://gitlab.com/api/v4/projects/${CI_PROJECT_ID}/jobs/${BUILD_JOB_ID}/artifacts/${RELEASE_CV_FILENAME}"
stage: "publish"
variables:
GIT_STRATEGY: "none"
# Private releases rebuilds the CV with the extra details.
publish:pdf:private:
extends:
- .cv-publish-job-rules
- .release-tags
- .use-cv-builder
needs:
- job: "test:spellcheck"
artifacts: false
- job: "test:pdf"
artifacts: false
script:
- cv-make pdf
- mv __output/cv.pdf ${CV_DEPLOY_DIR}/${RELEASE_CV_FILENAME}
stage: publish
variables:
CV_DEPLOY_DIR: "/CV"
CV_CONTACT_PHONE: $RELEASE_CV_CONTACT_PHONE