ステップ
パイプラインステップは、一連のシェルコマンドとして定義されます。コマンドは、gitリポジトリのルートディレクトリ内で実行されます。ワークスペースとも呼ばれるgitリポジトリのルートは、パイプラインのすべてのステップで共有されます。
構成例:
1 kind: pipeline
2 type: digitalocean
3 name: default
4
5 token:
6 from_secret: token
7
8 steps:
9 - name: backend
10 commands:
11 - go build
12 - go test
13
14 - name: frontend
15 commands:
16 - npm install
17 - npm test
コマンド
コマンドは、gitリポジトリのルートディレクトリ内で実行されます。ワークスペースとも呼ばれるgitリポジトリのルートは、パイプラインのすべてのステップで共有されます。これにより、ファイルアーティファクトをステップ間で保持できます。
8 steps:
9 - name: backend
10 commands:
11 - go build
12 - go test
上記のコマンドは、単純なシェルスクリプトに変換されます。上記の例のコマンドは、大まかに次のスクリプトに変換されます。
1 #!/bin/sh
2 set -e
3 set -x
4
5 go build
6 go test
終了コードは、ステップが成功したか失敗したかを判別するために使用されます。コマンドがゼロ以外の終了コードを返す場合、そのステップは失敗としてマークされます。パイプライン全体のステータスも失敗としてマークされ、残りのパイプラインステップはスキップされます(失敗時に実行するように明示的に構成されている場合を除く) 。
環境
環境セクションは、個々のパイプラインステップにスコープされた環境変数を定義する機能を提供します。
8 steps:
9 - name: backend
10 environment:
11 GOOS: linux
12 GOARCH: amd64
13 commands:
14 - go build
15 - go test
条件
whenセクションは、実行時にステップの実行を条件付きで制限する機能を提供します。以下の例では、ブランチごとにステップの実行を制限していますが、イベント、リファレンス、ステータスなどによって実行を制限できます。
8 steps:
8 - name: backend
10 commands:
11 - go build
12 - go test
13 when:
14 branch:
15 - master
ステータス条件を使用して、デフォルトのランタイム動作をオーバーライドし、パイプラインステータスが失敗した場合でも手順を実行します。
8 steps:
9 - name: cleanup
10 commands:
11 - docker system prune -f
12 when:
13 status:
14 - failure
15 - success
詳細については、条件の記事を参照してください。
失敗
失敗属性を使用すると、システムが個々のステップの失敗を処理する方法をカスタマイズできます。これは、パイプライン全体を失敗させることなくステップを失敗させる場合に役立ちます。
8 steps:
9 - name: backend
10 failure: ignore
11 commands:
12 - go build
13 - go test