Skip to main content

Advanced YAML syntax

Anchors & aliases

You can use YAML anchors & aliases as variables in your pipeline config.

To convert this:

pipeline:
test:
image: golang:1.18
commands: go test ./...
build:
image: golang:1.18
commands: build

Just add a new section called variables like this:

+variables:
+ - &golang_image 'golang:1.18'

pipeline:
test:
- image: golang:1.18
+ image: *golang_image
commands: go test ./...
build:
- image: golang:1.18
+ image: *golang_image
commands: build

Example of YAML override and extension

variables: 
&some-plugin-settings
settings:
target: dist
recursive: false
try: true

pipelines:
develop:
name: Build and test
image: some-plugin
settings: *some-plugin-settings
when:
branch: develop

main
name: Build and test
image: some-plugin
settings:
<<: *some-plugin-settings
try: false # replacing original value from `some-plugin-settings`
ongoing: false # adding a new value to `some-plugin-settings`
when:
branch: main