■ はじめに
前日まで動いてたGithub actions がいきなり動かなくなったが 周りに助けてもらったので、感謝。。。 でも、これ、結構、トラブルになりそうなので、メモ。
目次
【1】現象 【2】エラーメッセージ 【3】発生環境 補足:GitHubホステッドランナーの場合 【4】現象が発生したGithub actions 例 1)発生前に出ていた警告文 【5】原因 1)発生条件 【6】解決案 1)恒久的な解決案 2)一時的な解決案
【1】現象
前日まで動いてた Self-hosted runner下の Github actions の actions/checkout から 突然エラーが出た
追加情報
* actions/upload-artifact アクションからも出た
【2】エラーメッセージ
/actions-runner/externals/node20/bin/node: /lib64/libm.so.6: version `GLIB_2.27` not found (required by /actions-runner/externals/node20/bin/node)
【3】発生環境
* 環境:Self-hosted runner * OS:Amazon Linux2 * actions/checkout:v3 (actions/upload-artifact: v3.1.3)
補足:GitHubホステッドランナーの場合
* 現象は発生せず
【4】現象が発生したGithub actions 例
name: TestA on: workflow_dispatch: jobs: sample: # ★Self-hosted runner runs-on: self-hosted steps: # ★actions/checkout からエラー # https://github.com/actions/checkout/commits/v3.1.0 # - uses: actions/checkout@v3.1.0 - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
1)発生前に出ていた警告文
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@x
【5】原因
* Node16 から Node20 の使用を強制させられたため。 # セキュリティのためとはいえ、 # ユーザアクションなしに変えるなよ、、、 # こんなん、ポリシーのサービスなら怖くて使えねーよ、、、 => 以下、詳細。
より抜粋 ~~~~~~~~~~~~~~~~~~~ Node16 has been out of support since September 2023. As a result we have started the deprecation process of Node16 for GitHub Actions. We plan to migrate all actions to run on Node20 by Spring 2024. Following on from our warning in workflows using Node16 we will start enforcing the use of Node20 rather than Node16 on the 3rd of June. ~~~~~~~~~~~~~~~~~~~
日本語訳
Node16は2023年9月にサポートを終了しました。 そのため、GitHub Actions では Node16 の非推奨プロセスを開始しました。 2024年春までにすべてのアクションを Node20 に移行する予定です。 Node16を使ったワークフローでの警告に続き 6月3日から Node16 ではなく Node20 の使用を強制します。
1)発生条件
* Self-hosted runner で Node20 がインストールされていないOS => Node20 が入っていたら、 エラーメッセージにでている「GLIB_2.27」が存在するので発生しない
【6】解決案
1)恒久的な解決案
* Node16 を Node20 に上げる => 今回の場合、Self-hostes runnerのOSバージョンを 「Amazon Linux2」->「Amazon Linux2023」に上げて対応
2)一時的な解決案
* 環境変数 ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true を追加する
より抜粋 ~~~~~~~~~~~~~~~~~~~ To opt out of this and continue using Node16 while it is still available in the runner, you can choose to set ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true as an ‘env’ in their workflow or as an environment variable on your runner machine. This will only work until we upgrade the runner removing Node16 later in the spring. ~~~~~~~~~~~~~~~~~~~
日本語訳
ランナーでまだ利用可能な間は、これをやめてNode16 を使い続けるには、次のように設定します。 ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=trueを設定する。 をワークフローの'env'として設定するか、 ランナー・マシンの環境変数として設定することができます。 これは、春の後半にNode16を削除するランナーを アップグレードするまで機能します。
修正例
name: TestA on: workflow_dispatch: jobs: sample: # ★Add env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true runs-on: self-hosted steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8
参考文献
https://zenn.dev/cybozu_ept/articles/productivity-weekly-20240313
関連記事
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 ~ Self-hosted runners / 入門編 ~
https://dk521123.hatenablog.com/entry/2023/12/18/204119
Github Actions ~ Self-hosted runners / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2024/02/07/002736