CV/.gitlab/ci/cv-gitlab-ci.yml
Dan Anglin 8194e95852
feat: update CV with latest experiences
- build CV with the latest cv builder image.
- update main job title.
- update location.
- add link to linkedin profile.
- update summary.
- update the skills section.
- update experience with Experian.
2022-02-02 01:47:39 +00:00

128 lines
2.8 KiB
YAML

---
#--------------------------------------------#
# Hidden job templates for CV build pipeline #
#--------------------------------------------#
.use-cv-builder:
image: ${IMAGE_NAME}:master-44f2a31c
.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
test:pdf:
extends:
- .cv-default-job-rules
- .default-tags
- .use-cv-builder
script:
- cv-make pdf
stage: test
build:pdf:
artifacts:
expire_in: "30 minutes"
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
script:
- cv-make pdf
stage: build
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