pipeline-tools
v2.4.5
Published
Pipeline Tools
Downloads
40
Readme
pipeline-tools
Code and snippets to re-use in pipeline specifications
Examples
To copy and use in your own project. Please see include directory for explanations and descriptions on usage.
Making Enhancements
Any GitLab pipelines that use these configurations always use the most up-to-date configurations for their jobs.
To avoid breaking all projects that use these common "include" configurations, we use Git tags determine the version of configurations you want to use.
As these jobs can be used across all types of projects, it's important to update the include/README.md document when making new changes.
Include
Pipeline snippets that can be used by reference in your pipeline via the include
keyword thus:
include:
- project: 'platform/pipeline-tools'
file: '/include/build-deploy-image.yml'
This, by default will point to the HEAD of the project when not specified. This means that when a new version of pipeline-tools gets announced via #platform-product, the new version will be picked up the next time your pipeline runs.
However, if you want to lock your configurations to a specific version of pipeline-tools, you can do so by including the ref
of the version you want to pin:
include:
- project: 'platform/pipeline-tools'
ref: 1.0.0 # Git Tag
file: '/include/build-deploy-image.yml'
This is very helpful when there are breaking changes to the pipeline-tools and you don't want to upgrade yet but it is recommended you use the default behaviour to avoid drift when enhancements are made.
Publish
This project uses Semantic Release link to automate the release of pipeline-tools workflow including: determining the next version number, generating the release notes, and publishing.
Automating the release process starts at the merge request event, where users must ensure their merge request titles have a prefix followed by a meaningful message (i.e. Breaking:, New:, Fix: etc.).
The following prefixes determine what kind of release it is. Please ensure that your MR titles have any of the below prefixes, they are case sensitive:
- Major Release Prefixes
- Breaking:
- Minor Release Prefixes
- New:
- Patch Release Prefixes
- Update:
- Build:
- Chore:
- Fix:
- Docs:
See GitLab doco for further information
Pipeline Includes
https://docs.gitlab.com/ee/ci/yaml/#include
Parent-Child Pipelines
https://docs.gitlab.com/ee/ci/pipelines/parent_child_pipelines.html
Dynamic Pipelines
https://docs.gitlab.com/ee/ci/pipelines/parent_child_pipelines.html#dynamic-child-pipelines