• Kamil Trzciński's avatar
    Merge branch 'feature-ci-only-except-trigger' into 'master' · 0fcea6b6
    Kamil Trzciński authored
    CI: Add 'triggers' keyword to 'only' and 'except' lists to allow control over when triggers cause builds to run
    
    Currently, the `only` and `except` keywords in `.gitlab-ci.yml` only accept ref names or the special `branches` and `tags` keywords. However, these are primarily useful when controlling how repository activity affects the creation of builds. In my case, instead of building on every commit, I'd like to use the following logic:
    
    - If the repository is tagged, do a build.
    - Any other normal commits should not cause a build.
    - If a build is triggered via the API, always create one for the specified ref.
    
    From what I can tell, this isn't possible via the existing YAML syntax. In this MR, I introduce a new keyword `triggers` that goes along with `branches` and `tags`. I can implement the logic above using the following job configuration:
    
    ```yaml
    only:
      - tags
      - triggers
    ```
    
    I updated the tests and documentation to reflect this and everything seems to pass.
    
    See merge request !3230
    0fcea6b6
gitlab_ci_yaml_processor.rb 9.64 KB