Functions
We recommend reviewing Go Templates documentation before attempting to create a template.
If you're new to YAML we also recommend reviewing the YAML 1.2 spec for validation on syntax.
Overview
Go provides a limited set of built-in template functions. Vela provides a number of additional, predefined functions to utilize in templates.
Built-in Functions
See Go template Functions for a list of built-in functions.
Example
A function call:
{{ printf "%q" "output" }}
A function call whose final argument comes from the previous command:
{{ "output" | printf "%q" }}
Custom Functions
Sprig
Sprig provides over 100 additional template functions. Please refer to the original Sprig function documentation.
To note, the env and expandenv functions are not available in Vela.
toYaml
The toYaml function is intended to ease working with passing and rendering YAML content in Vela templates.
Example
.vela.yml
version: "1"
templates:
  - name: golang
    source: github.com/<org>/<repo>/path/to/file/<template>.yml
    type: github
steps:
  - name: sample
    template:
      name: golang
      vars:
        ruleset:
          event: [ push, pull_request ]
          branch: [ main ]
github.com/<org>/<repo>/path/to/file/<template>.yml
metadata:
  template: true
steps:
  - name: install
    commands:
      - test
    image: alpine
    ruleset:
      {{- toYaml .ruleset | nindent 6 }}
With the pipeline and template above in place, the final resulting pipeline would render as follows:
version: "1"
steps:
  - name: sample_install
    commands:
      - test
    image: alpine
    ruleset:
      event: [ push, pull_request ]
      branch: [ main ]
vela
The vela function provides the convenience of accessing Vela environment variables within your Vela templates. See its dedicated platform vars page for more info.