Steps
Pipeline steps are defined as a series of shell commands. The commands are executed inside the root directory of your git repository. The root of your git repository, also called the workspace, is shared by all steps in your pipeline.
Example configuration:
1 kind: pipeline
2 type: ssh
3 name: default
4
5 server:
6 host: 1.2.3.4
7 user: root
8 password:
9 from_secret: password
10
11 steps:
12 - name: backend
13 commands:
14 - go build
15 - go test
16
17 - name: frontend
18 commands:
19 - npm install
20 - npm test
Commands
The commands are executed inside the root directory of your git repository. The root of your git repository, also called the workspace, is shared by all steps in your pipeline. This allows file artifacts to persist between steps.
11 steps:
12 - name: backend
13 commands:
14 - go build
15 - go test
The above commands are converted to a simple shell script. The commands in the above example are roughly converted to the below script:
1 #!/bin/sh
2 set -e
3 set -x
4
5 go build
6 go test
The exit code is used to determine whether the step is passing or failing. If a command returns a non-zero exit code, the step is marked as failing. The overall pipeline status is also marked as failing, and remaining pipeline steps are skipped (unless explicitly configured to run on failure).
Environment
The environment section provides the ability to define environment variables scoped to individual pipeline steps.
11 steps:
12 - name: backend
13 environment:
14 GOOS: linux
15 GOARCH: amd64
16 commands:
17 - go build
18 - go test
Conditions
The when section provides the ability to conditionally limit the execution of steps at runtime. The below example limits step execution by branch, however, you can limit execution by event, reference, status and more.
11 steps:
12 - name: backend
13 commands:
14 - go build
15 - go test
16 when:
17 branch:
18 - master
Use the status condition to override the default runtime behavior and execute steps even when the pipeline status is failure:
11 steps:
12 - name: cleanup
13 commands:
14 - docker system prune -f
15 when:
16 status:
17 - failure
18 - success
See the Conditions article for additional details:
Failure
The failure attribute lets you customize how the system handles failure of an individual step. This can be useful if you want to allow a step to fail without failing the overall pipeline.
11 steps:
12 - name: backend
13 failure: ignore
14 commands:
15 - go build
16 - go test