GitHub Actions(GH-200) 無料問題 2 / 10 ・ 分野1: ワークフローの作成と管理
あるrunステップが、実行可能なtoolを置いた/opt/new/binをGITHUB_PATHへ追記した。既存PATHには別版のtoolがある/opt/old/binが含まれる。別のPATH変更がない場合、同じジョブの次のステップでtoolを実行するとどちらが選ばれるか。
- ジョブを再実行してから新しい版が選ばれる
- 既存の/opt/old/binの版が選ばれる
- 追加した/opt/new/binの版が選ばれる
- 同名の実行ファイルがあるため失敗する
正解と解説を見る
正解: C
正解の理由
GITHUB_PATHに書いたディレクトリは、現在のジョブの後続ステップで使うPATHの先頭へ追加される。したがって/opt/new/binが/opt/old/binより先に探索される。
違う選択肢
「既存の/opt/old/binの版が選ばれる」…追加先は既存PATHの末尾ではなく先頭側なので、同名の実行可能ファイルでは追加した側が先に見つかる。
「同名の実行ファイルがあるため失敗する」…PATHに同名コマンドが複数あっても、重複を理由にActionsがエラーにするわけではない。探索順で選ばれる。
「ジョブを再実行してから新しい版が選ばれる」…再実行を待つ設定ではない。環境ファイルの変更は現在のジョブの後続ステップへ反映される。
押さえどころ
この環境ファイルはディレクトリの探索順を変更する。指定先のCLIをインストールする処理ではないため、書き込む前に必要な実行ファイルを配置しておく。