Support Skipping CI Programmatically When Tagging

Summary

To prevent an additional pipeline, the release-cli currently relies on:

  rules:
    - if: $CI_COMMIT_TAG
      when: never

On every job or as a workflow rule.

This has the inadvertent consequence of not being able to use "Run Pipeline" against tags in the project.

Steps to reproduce

Attempt to run pipeline against a tag when the pipeline yaml includes the above rule to prevent pipelines when release-cli adds a tag - nothing happens.

Example Project

https://gitlab.com/guided-explorations/devops-patterns/utterly-automated-versioning

What is the current bug behavior?

Implementation requires a pipeline rule that prevents potentially desirable builds from being done.

What is the expected correct behavior?

release-cli should be able to programmatically prevent a pipeline similar to git push -o ci.skip (I don't know if release-cli actually uses a push or something else - just noting it is possible on push).

Possible fixes

Implement the equivalent of git push -o ci.skip in the release-cli.

Edited by Jaime Martinez