GithubActionsで非推奨になったsave-stateとset-outputを修正する
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 に。
echo “::save-state name={name}::{value}”
↓
echo “{name}={value}” >> $GITHUB_STATE
set-output は $GITHUB_OUTPUT に。
echo “::set-output name={name}::{value}”
↓
echo “{name}={value}” >> $GITHUB_OUTPUT
確認方法
書き換えたらワークフローを実行して、警告が消えているか確認してみましょう。
単純に、以下の文字列を削除して、{name}::{value} となっていた箇所をイコール(=)で繋ぎ、環境ファイルにリダイレクトするだけですね。
::save-state name=
::set-output name=
手作業だと単調な作業でミスりそうなので、量が多い場合は正規表現などで一括置換が無難でしょう。
差分は Pull Request で要チェックということで。