woodpecker/docs/docs/20-usage/35-advanced-yaml-syntax.md
2022-09-17 09:00:40 +02:00

66 lines
1.2 KiB
Markdown

# Advanced YAML syntax
## Anchors & aliases
You can use [YAML anchors & aliases](https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases) as variables in your pipeline config.
To convert this:
```yml
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:
```diff
+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
```
<!--
TODO(1192): Support YAML override and extension
## Example of YAML override and extension
```yml
variables:
&some-plugin-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
```
-->