Skip to main content

Functions

tip

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.