Skip to Content

Embeddedアクション

embeddedアクションはジョブファイルを1つのステップとして実行します。共通のセットアップやチェックを別ファイルに切り出し、複数のワークフローから再利用できます。

読み込むファイルはワークフローではなくジョブです。name、steps、必要ならdefaultsを持ち、jobsキーはありません。

基本的な構文

auth.yml:

name: Authentication steps: - name: Get token id: get_token uses: shell with: cmd: echo "0123456789" test: res.code == 0 outputs: mytoken: replace(res.stdout, '\n', '')

workflow.yml:

jobs: - name: Main steps: - name: Authenticate id: auth uses: embedded with: path: "./auth.yml" vars: environment: "{{vars.environment}}" test: res.code == 0 outputs: token: res.outputs.mytoken - name: Call the API uses: http with: method: GET url: "{{vars.api_url}}/me" headers: authorization: "Bearer {{outputs.auth.token}}" test: res.code == 200

パラメータ

埋め込みのステップでは、実行するジョブファイルと、そこに渡す変数を指定します。

パラメータ型必須デフォルト説明
pathString必須-ジョブファイルのパス。ワークフローファイルからではなく、カレントディレクトリからの相対パスとして解決されます
varsObject任意{}埋め込みジョブに渡す変数。向こう側ではvars.<name>で参照します

ジョブファイルの中でuses: ./greetのようにローカルの外部アクションを使うと、ワークフローの中でワークフローファイルから探すのと同じく、そのジョブファイルからの相対パスで探します。

レスポンスオブジェクト

埋め込みジョブの終了後、resにその結果と出力が入ります。

プロパティ型説明
res.codeInteger埋め込みジョブのすべてのステップが成功したとき0
res.outputsObject埋め込みジョブのステップが公開したoutputs。出力名がキーになります
res.reportString埋め込みジョブのレポート。親のレポートにもネストして表示されます
res.errorString失敗時のエラーメッセージ
res.dumpBoolean常にfalse
statusIntegerres.codeと同じ値
rtObject埋め込みジョブの実行時間

res.outputsのキーは出力名なので、mytokenとして公開した値はres.outputs.mytokenで読みます。同じ値は公開したステップのidの下にもres.outputs.get_token.mytokenとして入っています。2つのステップが同じ名前を公開した場合、res.outputs.<name>には先に公開したステップの値が入り、ステップのidの下の形にはそれぞれの値が入ります。

関連項目

更新日時