メインコンテンツへスキップ

github actionsで使えるコンテキスト情報について

· loading · loading ·
kiitosu
著者
kiitosu
画像処理やデバイスドライバ、データ基盤構築からWebバックエンドまで、多様な領域に携わってきました。地図解析や地図アプリケーションの仕組みにも経験があり、幅広い技術を活かした開発に取り組んでいます。休日は草野球とランニングを楽しんでいます。
目次

はじめに
#

githubのbase/headがどっちがどっちかわからない。
github.head_ref が使えたり使えなかったりするのがよくわからない。
そもそもrefも何なんだかわからない。

整理する
#

まずref
#

refはreferenceで参照の意味。 refs/heads/masterのような形式ではじめて意味を持つ。 (個人的な感想として、github actionsでgithub.refという変数があるからややこしく感じる。まるでrefで何が定義される値があるかのように感じる。)

次にhead
#

これは「現在の位置」を表す。 「ブランチの先頭」という勘違いをしてきたが、そうではない。 ブランチと言うとは分岐した流れを示すことを想像するが、実際は単なる一つのコミットを指す参照に過ぎない。 その参照であるブランチを持たないcommitをcheckoutした時に「detached head」となる。

github actionsでコンテキスト情報
#

素晴らしい情報。

ここに一つだけ情報を追加しておきたい。
github.event.before を使うことでpush前のbaseブランチのコミットハッシュが取れる。
これを使うとPRと同様にpush単位、PR単位、で差分を比較評価できる。
例えばPR前後、push前後で特定のファイルが変わったかどうかなどの評価ができる。

Variable Push Event Pull Request Event
$GITHUB_REF refs/heads/{BRANCH_NAME} refs/pull/{ISSUE_NUMBER}/merge
${{ github.ref }} refs/heads/{BRANCH_NAME} refs/pull/{ISSUE_NUMBER}/merge
${{ github.ref_name }} {BRANCH_NAME} {ISSUE_NUMBER}/merge
${{ github.head_ref }} - {HEAD_BRANCH_NAME}
${{ github.base_ref }} - {BASE_BRANCH_NAME}
${{ github.event.before }} push前のbaseブランチのコミットハッシュ -

すべてのコンテキスト情報
#

直感的にわかるような変数ではない。
要するにここを読んでやりたいことをやる必要がある。
と理解した。

Reply by Email

関連記事

Flutterプロジェクトにおけるコンパイラの衝突回避の方法
· loading · loading
Kolinの初期化ブロックはクラスボディの順番で呼び出される
· loading · loading
github clientからコミットを試みた時にhuskyでエラーが出た
· loading · loading