この記事ではjobの実行順序とjobが成功したか否かで動作を制御する例をメモ書きしています。
jobの実行順序を制御するにはneeds
を使用します。
この例では、job1 が完了したら job2、job2 が完了したら job3 が始まるように設定しています。
job2にneeds: job1
、job3にneeds: job2
を設定することで実現できます。マニュアル: jobsjob_idneeds
jobs:
job1:
runs-on: ubuntu-latest
defaults:
run: |
echo "test1"
job2:
needs: job1
runs-on: ubuntu-latest
defaults:
run: |
echo "test2"
job3
needs: job2
runs-on: ubuntu-latest
if: "${{ needs.job2.result }}" = "success"
defaults:
run: |
echo "test3"
if: "${{ needs.job2.result }}" = "success"
とすることで、job2
が成功しているか判定できます。
job2
が成功しているとneeds.job2.result
がsuccess
となるためです。 マニュアル: needs コンテキスト