技術系TIPS
PR

GithubActionsで非推奨になったsave-stateとset-outputを修正する

saratogax
記事内に商品プロモーションを含む場合があります

Github Actions で作ったワークフローを実行していて、いつの間にか出力されるようになった警告。

Warning: The set-output command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

処理は正常に完了していても、実行ログを確認したときに警告が出ていると気持ち悪いですよね。

そこで、今回は Github Actions で非推奨になった save-state と set-output を推奨されている形式に書き換えていきます。

非推奨になった内容

冒頭でも書いた通り、save-state と set-output のコマンドが非推奨になりました。

GitHub のサイトでは以下の専用ページが用意されています。

2023 年 5 月 31 日までは警告が出るだけですが、6 月 1 日以降はエラーになるので注意が必要。

(2023年5月25日 追記)
GitHub Actions: Deprecating save-state and set-output commands」の中で、この話題について取り消されている感じなので、今後の情報を追っておきたいですね。やっぱ、サードパーティー製の actions のこともあるので、影響範囲が大きすぎますもんね。

多くのリポジトリやワークフローを抱えているプロジェクトでは、メンバーで分担しながら対応したいですよね。

修正方法

GitHub のページのサンプルにある通り、$GITHUB_STATE や $GITHUB_OUTPUT の環境ファイル(environment files)に標準出力させます。

save-state は $GITHUB_STATE に。

save-state

echo “::save-state name={name}::{value}”
 ↓
echo “{name}={value}” >> $GITHUB_STATE

set-output は $GITHUB_OUTPUT に。

set-output

echo “::set-output name={name}::{value}”
 ↓
echo “{name}={value}” >> $GITHUB_OUTPUT

確認方法

書き換えたらワークフローを実行して、警告が消えているか確認してみましょう。

単純に、以下の文字列を削除して、{name}::{value} となっていた箇所をイコール(=)で繋ぎ、環境ファイルにリダイレクトするだけですね。

::save-state name=
::set-output name=

手作業だと単調な作業でミスりそうなので、量が多い場合は正規表現などで一括置換が無難でしょう。

差分は Pull Request で要チェックということで。

ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました