GitHub Actions
でPRが動いたらExpoをpublishしてそのQRコードをPRのコメントに貼るCIを作成した時にapp.json
のslugの値を取得する際にハマったお話。
やろうとしていたこと
app.json
の中身を別のstepでも参照できるようにして、その値をfromJson
でjsonのように扱ってslugの値を抜き出そうとしていた。
#.github/workflows/expo.yaml
...
- name: Get app json
id: app-json
run: echo "::set-output name=appJson::$(cat ./app.json)"
...
${{ fromJson(steps.app-json.outputs.appJson).expo.slug }}
...
そのCIを動かしてみると、Error reading JObject from JsonReader.
というエラーが発生した。
原因
この原因はset-output
に複数行の文字列をセットできないことだった。
対策
set-output
でjsonをセットする際に改行を削除するようにした。
echo "::set-output name=appJson::$(cat ./app.json | tr -d '\n')"