Skip build with [ci skip] in tag description
Currently it's possible to skip a build by specifying `[ci skip]` in a commit title or description, which is a great feature! It's very easy to use and anyone (without knowledge about the specific ci platform) can see at a glance that a commit was explicitly requested not to be built. Furthermore CircleCI explicitly shows the 'skipped' status for the build in it's UI.
It would be great if similar support is added for git tags.
Some of the arguments I outlined in the 'Current support' section. Easy to use, anyone can see that a build was skipped for a specific tag and CircleCI explicitly lists the build as 'skipped' in it's UI (since it's not a failed nor a succeeded build).
- A GitHub (draft) release is created by specifying the new version
- A CircleCI job is triggered for the tag
- It applies the new version to the version files and commits (and pushes) them. Specifying [ci skip] so this commit isn't built.
- It deletes the existing GitHub created tag and creates a new tag with the same name that points to the new commit (and pushes it). With this new feature it (like the commit) can create the new tag with specifying [ci skip] so it won't recursively trigger builds based on a created tag.
Git tag name
For git tags it's not possible to do this with the tag name, since both the spaces and the brackets are not valid characters in a tag name. Also I don't think anyone should want to stain their git (version) tag names with ci commands. Besides that git tag names can be filtered by using the `filters tags` section of a job: see docs.
Git tag message
The best solution would be to skip builds based on a tag message. Similar to skipping a build based on a commit message (see docs). So creating a tag like `git tag -a v1.1 -m "Release v1.1 [ci skip]"` would skip the build.
Add support for skipping a build based on a tag description. Creating a tag like `git tag -a v1.1 -m "Release v1.1 [ci skip]"` will cause CircleCI to skip the build and show the build als 'skipped' in it's UI.