LoginSignup
1
0

【GitHub Actions】Job SummaryでGitHub ActionsでのPythonの実行結果を見やすくする

Last updated at Posted at 2023-02-19

はじめに

サイコロが急に必要になったので、GitHub ActionsでPythonを動かして1~6の数字をランダムに表示させてみます。(無理矢理過ぎる話題作り)
ymlファイルとpythonのファイルは以下のようになっています。

main.yml
name: main
on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.x'
          architecture: 'x64'
      - name: Run Python
        run: python main.py
main.py
import random

number = random.randint(1,6)
print('サイコロの出目は' + str(number) + 'です')

「こんなコードをGitHub Actionsで実行するのか」と言われそうですが、「誰もが実行しない」とは言い切れないと思うので無視します。(ゴリ押し)

GitHub Actionsの実行結果はこんな感じで見ることができます。

GitHub Actionsの実行結果

正直見づらいし、クリックするのが面倒です。
できればこの画面の時点で結果を確認できるようにしたいです。

result

ググっても出てこなかったので公式のドキュメントを見ていたところ、以下のようなものを見つけました。

普通に書いてあるじゃないか。

ということでPythonの実行結果を表示させていきます。

対象

・GitHub Actionsの基本は分かっている人

1.pythonファイルの修正

まずはPythonの変数の値を他のステップから参照できるようにします。

main.py
import random
import subprocess

number = random.randint(1,6)
subprocess.run([f'echo "NUMBER={number}" >> $GITHUB_OUTPUT'], shell=True)

subprocessモジュールによってPythonからコマンドを実行できます。

また、echo "{name}={value}" >> $GITHUB_OUTPUTというコマンドでステップの出力パラメーターを設定します。
今回の場合、NUMBERという変数にnumber(サイコロの結果)を代入しています。

詳細↓

2.ymlファイルの修正

他のステップから参照できるようにした変数の値をJob Summaryに表示させます。

main.yml
      # 省略
      - uses: actions/setup-python@v4
        with:
          python-version: '3.x'
          architecture: 'x64'
      - name: Run Python
        id: result
        run: python main.py
      - name: Job Summary
        run: |
          echo '### サイコロの出目: ${{ steps.result.outputs.NUMBER }}' >> $GITHUB_STEP_SUMMARY

id: <id名>で他のステップから参照できるようになります。
id名は任意です。今回の場合はid名をresultにしました。

echo '<Markdown>' >> $GITHUB_STEP_SUMMARYでJob Summaryに表示させる内容を指定します。
また、${{ steps.<id名>.outputs.<変数名> }}でid名がresultのステップの出力結果を参照できます。
id名はresult、変数名はNUMBERとしています。

詳細↓

「id名が"result"のステップにある"NUMBER"という変数の値をJob Summaryに表示させる」と言えば分かりやすいでしょうか。

3.実行結果

実行結果はこんな感じになります。

job

ワンクリックで結果が見られるようになりました。しかも大きいから見やすい。

4.おまけ

一応絵文字も使えるそうです。

ということは皆大好きな「美味しいヤミー」も表示させることができる...?
早速このGistを参考に絵文字を変換し、美味しいヤミーを表示させてみました。

yummy.yml
name: yummy
on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Job Summary
        run: |
          echo '美味しいヤミー:exclamation::sparkles::metal::grin::thumbsup:感謝:exclamation::raised_hands::sparkles:感謝:exclamation::raised_hands::sparkles:またいっぱい食べたいな:exclamation::meat_on_bone::yum::fork_and_knife::sparkles:デリシャッ‼️:pray::sparkles:シャ‼️:pray::sparkles: シャ‼️:pray::sparkles: シャ‼️:pray::sparkles: シャ‼️:pray::sparkles: シャ‼️:pray::sparkles: シャッッ‼ハッピー:star2:スマイル:exclamation::point_right::grin::point_left:' >> $GITHUB_STEP_SUMMARY

結果↓

yummy

見慣れた構文がちゃんと表示されました。

ちょっと気になったので、試しに絵文字を変換しないで実行してみました。

yummy.yml
name: yummy
on:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Job Summary
        run: |
          echo '美味しいヤミー❗️✨🤟😁👍感謝❗️🙌✨感謝❗️🙌✨またいっぱい食べたいな❗️🍖😋🍴✨デリシャッ‼️🙏✨シャ‼️🙏✨ シャ‼️🙏✨ シャ‼️🙏✨ シャ‼️🙏✨ シャ‼️🙏✨ シャッッ‼ハッピー🌟スマイル❗️👉😁👈' >> $GITHUB_STEP_SUMMARY

結果↓

yummy2

表示できるじゃないか。絵文字変換していた時間返してくれ。

コード

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0