■ はじめに
Github Actions において、 例えば、別処理結果を待つのにシェルで無限ループする箇所があるのだが これはこれでちょっと怖いので、Timeoutについて調べてみた
目次
【1】Github ActionsでTimeoutを設定するには 【2】利点 【3】timeout-minutes 1)jobs.<job_id>.steps[*].timeout-minutes 2)jobs.<job_id>.timeout-minutes 【4】サンプル 【5】使用上の注意 1)環境変数などを使う場合には fromJSON()が必要
【1】Github ActionsでTimeoutを設定するには
* 「timeout-minutes」で設定する
【2】利点
* 以下のサイトで書かれている
https://qiita.com/chihiro/items/341b579a07fac35fd1d7
https://dev.classmethod.jp/articles/must-set-timeout-on-actions-for-save-cost/
[1] GitHub ホステッド ランナーには使用状況の制限があるが Timeoutを設定することにより、そのリソースの枯渇を未然に防ぐことはできる
【3】timeout-minutes
* 以下の2点が用意されている
1)jobs.<job_id>.steps[*].timeout-minutes
* Step個別のTimeoutを設定する(分単位)
2)jobs.<job_id>.timeout-minutes
* Job個別のTimeoutを設定する(分単位)
【4】サンプル
name: Sample Githun Actions on: [push] jobs: job1: name: job1 runs-on: ubuntu-latest timeout-minutes: 10 # ★注目★ steps: - name: Hello World run: echo "Hello, World" job2: name: job2 runs-on: ubuntu-latest steps: - name: Hi World run: echo "Hi, World" timeout-minutes: 5 # ★注目★
【5】使用上の注意
1)環境変数などを使う場合には fromJSON()が必要
* 以下「エラーが発生する例」を実行すると、 エラー「Error: The template is not valid.」が発生する => 以下のサイトで書かれているように、fromJSON() が必要 (以下「解決案」を参照)
https://github.com/orgs/community/discussions/55332
=> 別に timeout-minutes に限ったことではないかもしれないが、、、
エラーが発生する例
name: Sample Githun Actions on: [push] env: TIMEOUT_MINS: 30 jobs: job1: name: job1 runs-on: ubuntu-latest timeout-minutes: ${{ env.TIMEOUT_MINS }} # ★エラーメッセージ参照★
エラーメッセージ
Error: An error occurred when attempting to determine the step timeout. Error: The template is not valid. .github/workflows/xxxx.yml (Line: XXX, Col: XXX): unexpected value '30'
解決案
# 【修正前】 # timeout-minutes: ${{ env.TIMEOUT_MINS }} # 【修正後】 timeout-minutes: ${{ fromJSON(env.TIMEOUT_MINS) }}
関連記事
Github ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/07/18/234652
Github Actions ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/04/142835
Github Actions ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/06/16/151443
Github Actions ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/12/22/195715
Github Actions ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2023/12/21/155224
Github Actions ~ Artifact ~
https://dk521123.hatenablog.com/entry/2024/02/13/021717