3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitHub Actions で Slack 通知をする時にコミットメッセージを入れたい時のハマりどころ

Last updated at Posted at 2020-05-11

GitHub Actions を使用して Slack にコミットメッセージ付きのメッセージを送ろうとした時にうまくいかなかったことの調査・解決方法をまとめます。

何が起きていたか

以下のフォーラムを参考にしてコミットメッセージを取得しようとしていた。
しかしうまく動かなかった。
Accessing commit message in pull_request event - Community Forum -

- name: get commit message
        run: |
           echo ::set-env name=commitmsg::$(git log --format=%B -n 1 ${{ github.event.after }})

先に結論

actions/checkout@v1actions/checkout@v2 の挙動が異なっていたため、動作していなかった。

解決策

解決策は2つあります。

actions/checkout@v1 を使用する

こちらは単純です。actions/checkout@v1actions/checkout@v2 の挙動の差異が問題ならば actions/checkout@v1 を使用すればうまくいきます。
ただ、せっかく actions/checkout@v2 が出ているのに使用しないのは避けていきたいところです。

actions/checkout@v2 を使用し、同時に ref を指定する

actions/checkout@v2 アクションを使用するタイミングで Pull Request の HEAD にチェックアウトする方法です。
今回自分はこちらを採用しました。

- uses: actions/checkout@v2
  with:
    ref: ${{ github.event.pull_request.head.sha }}

調査

挙動が違うと感じた/実感した際に行った調査内容についてです。

git log をワークフローの中に入れてみた

actions/checkout@v1

まず、対象のコミットは以下です。
スクリーンショット 2020-05-11 17.54.14.png

コミットハッシュが 24c119f となっています。

ログは以下のようになっています。
上から2つ目に対象のコミットが入っていますね。

git log
  shell: /bin/bash -e {0}
commit 61407417192b36f7ce78a7d10100c0ca0aa77609
Merge: 554330b 24c119f
Author: Ryoya Ito <30540303+ry-itto@users.noreply.github.com>
Date:   Sat May 9 08:38:22 2020 +0000

    Merge 24c119f72c7d35bb0e24894e2740b96e018e0c51 into 554330bcd5721bc2fb8ac0382255e97860914d94

commit 24c119f72c7d35bb0e24894e2740b96e018e0c51
Author: Ryoya Ito <30540303+ry-itto@users.noreply.github.com>
Date:   Sat May 9 17:38:20 2020 +0900

    Update build_task.yml

commit a8c6cebe203d7fd393229976c9155882a11ed1dd
Author: Ryoya Ito <30540303+ry-itto@users.noreply.github.com>
Date:   Sat May 9 17:35:53 2020 +0900

    Update build_task.yml

...

actions/checkout@v2

対象のコミットは以下です。
スクリーンショット 2020-05-11 17.56.28.png

以下がログです。
これだけ?となるかと思いますが、これだけです。これ以上のログはないです。
対象のコミットが含まれていないことがわかるかと思います。

git log
  shell: /bin/bash -e {0}
commit 2670243ed341020471cbb8f156ea036ceb33c3ba
Author: Ryoya Ito <30540303+ry-itto@users.noreply.github.com>
Date:   Sat May 9 07:40:41 2020 +0000

    Merge 3f6fd628703a69a867143c6b08ec49e5e279d226 into 554330bcd5721bc2fb8ac0382255e97860914d94

推測

  • actions/checkout@v1 では、そのまま Pull Request のブランチの git log 全て + マージ後の状況のコミット

  • actions/checkout@v2 では、マージ後の状況のコミットしか持っていない

のかなと思っています。
マージ後の状況のコミット なのかどうかは定かではありません。もしわかる方いたら教えていただけるとありがたいです。)

終わりに

今回はコミットメッセージを取得することが目的でしたが、他のパターンでも今回のようなことは起こり得ると思います。
ネット上にある actions/checkout@v1 を使用した記事を参考にする際は上記解決方法を試してみてください。

3
1
1

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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?