私が歌川です

@utgwkk が書いている

GitHub Actionsのworkflow commandは標準出力と標準エラー出力のどちらに出力するとよいか?

tl;dr

2020/10/13時点 (GitHub Actions runner v2.273.5) では、標準出力 (STDOUT) と標準エラー出力 (STDERR) のどちらに出力してもよい

モチベーション

実験

以下のようなworkflow YAMLを GitHub - utgwkk/sandbox-actions-stdout-stderr に用意して実験した。

name: test
on:
  push:

jobs:
  test:
    name: annotate
    runs-on: ubuntu-latest
    steps:
    - name: Issue error command with STDOUT
      run: python3 -c "print('::error file=.github/workflows/test.yml,line=1::from stdout')"

    - name: Issue error command with STDERR
      run: python3 -c "import sys; print('::error file=.github/workflows/test.yml,line=1::from stderr', file=sys.stderr)"

実験結果

Python · utgwkk/sandbox-actions-stdout-stderr@c6d0e09 · GitHub

標準出力・標準エラー出力のどちらも有効
標準出力・標準エラー出力のどちらも有効

actions/runner のコードを追う

GitHub Actionsのworkflow commandでアノテーションするときのmessageで改行したい - 私が歌川です で、改行文字をencodeする処理の実装を追いかけたので、これを起点にコードを追う。C# を読むのに慣れてないので間違ってたら教えてください。

まとめ

  • 2020/10/13時点 (GitHub Actions runner v2.273.5) では、GitHub Actionsのwofklow commandは、標準出力と標準エラー出力のどちらに出力してもよい
    • コードを追った感じではそうなっている