Today I learned about git tags, and how to use them to control job triggering in gitlab ci.
Git tags are ref’s that point to specific points in Git history. There are two types: Lightweight which act as bookmarks for specific commits (can be thought of as private) and Annotated which stores extra meta data like tagger’s name and email address.
git tag <tagname> #lightweight git tag -a <tagname> -m <tag_message> #annotated
To trigger jobs according to tags we either use
except: or job(or workflow) rules.
Run the compile job for tagged commits only
stages: - compile_stage compile: stage: compile_stage image: rekka/tectonic only: - tags script: - tectonic Resume-fr.tex artifacts: paths: - Resume-fr.pdf
Run the pipline only for tagged commits with a version number having a pair patch number.
stages: - compile_stage workflow: rules: - if: '$CI_COMMIT_TAG =~ /v\d+\.\d+\.\d*/' compile: stage: compile_stage image: rekka/tectonic script: - tectonic Resume-fr.tex artifacts: paths: - Resume-fr.pdf