🐙

【Github Actions】$GITHUB_OUTPUT変更時にError: Invalid format '2.0'となった時の解決法

2024/06/05に公開

概要

​Github Actionsのset-outputをWorkflowで実行する度に以下のようなwarningが表示さ表示された。
set-output command is deprecated
調べてみるとGitHubのchange logにsave-stateコマンドとset-outputコマンドの廃止があった。
ただ現在はコマンドの使用頻度が高いようで、廃止を延期しているので動作はする状態。
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

ただいつ削除されるか不明&warning毎回出るのいやなので対応することにしたが、上記のchange logに記載されているExamples通りにしても

Error: Invalid format '2.0'

と表示されエラーとなった。

原因

自分の場合は

version=$(sed -n 's/^.*VERSION = \(.*\);.*$/\1/p'

で条件にあった値をversionに代入する処理を行っていた。
ただ条件に合った値が複数箇所合った場合、代入の際が改行されて入っていたので以下のような状態になっていた。(例えば2箇所合った場合)
1.2
1.2
これによりフォーマットエラーとなっていた。

解決方法

head -n 1追加して一行目だけを代入するようにした。
これで一行目だけ代入されるので意図した動きとなってフォーマットエラーも解決した
コード例

version=$(sed -n 's/^.*VERSION = \(.*\);.*$/\1/p' myfile.txt | head -n 1)

最後に

同じようなエラーが出た際は改行されてないか確認することをおすすめします。

Discussion