The Environment VariablesΒΆ

pipeline:
- env:
    a: "hello"

- stage(Environment Variables):
    - env:
        b: "world"

    - tasks(ordered):
        - env:
            c: "for all"

        - shell:
            script: |
                echo "a=$a"
                echo "b=$b"
                echo "c=$c"

An extract from the output when running the pipeline:

2017-11-20 18:47:08,209 - spline.components.bash - Running script /tmp/pipeline-script-w2MUih.sh
2017-11-20 18:47:08,215 - spline.components.tasks -  | a=hello
2017-11-20 18:47:08,215 - spline.components.tasks -  | b=world
2017-11-20 18:47:08,216 - spline.components.tasks -  | c=for all

All defined variables are merged together:

  • first all environment variables on pipeline level are taken
  • in the resulting dictionary all environment variables from stage level are used for updating. New variables are added and existing variables are overwritten.
  • in the resulting dictionary all environment variables from tasks level are used for updating. New variables are added and existing variables are overwritten.

Please note: All values have to be strings.

In a Bash script you also can refer to the variables using Jinja templating like {{ env.a }}.