--- #--------------------------------------------# # 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