Is there a way to instruct the pipeline to only do a step for certain tags that matches a regular expression?
I would like it to do a deploy when I push a tag on the format 1.2.3 (for example). Is there a way to do this?
If you do not enable that option, this Runner will be configured as “Shared Runner,” so Gitlab will share the Runner for any project that doesn’t specify a Tag. To assign Tags to the Gitlab Runner, you need to navigate to the Administration area, and select your Runner and then, edit the configuration, like the screenshot above:
Git supports two types of tags: Annotated tags: An unchangeable part of Git history. Lightweight (soft) tags: Tags that can be set and removed as needed. Many projects combine an annotated release tag with a stable branch. Consider setting deployment or release tags automatically.
Just a side note: tags, branches and commits (or ref's) are all treated the same in GIT (and consequently GitLab-CI) in that regard. When you tag a commit ref you are not tagging on a particular branch, you are simply tagging a commit ref which can live on multiple branches simultaneously.
Annotated tags: An unchangeable part of Git history. Lightweight (soft) tags: Tags that can be set and removed as needed. Many projects combine an annotated release tag with a stable branch. Consider setting deployment or release tags automatically. Create a lightweight tag. Create an annotated tag. Push the tags to the remote repository.
This should only be run for refs that are not branches named matching the given regex.
job:
only:
- /^(\d+\.)?(\d+\.)?(\*|\d+)$/
except:
- branches
Yes, you can do this with the only
option:
job:
# Use regexp
only:
- /^issue-.*$/
job:
# Use special keywords
only:
- tags
- triggers
- schedules
See only/except (basic).
You can also make use of rules:
job:
script: echo "Hello, World!"
rules:
- if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.\d+$/'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With