11
0

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 1 year has passed since last update.

GitHubActionsでブランチ名の参照

Last updated at Posted at 2021-08-12

GITHUB_REF_NAMEが使えるようになったのでそちらを使おう!

以下、太古の昔の手法です。
IT考古学的に、将来なんらかの文化的価値が出るかもしれないので保存しておきます。


GitHubActionsでブランチ名を取りたいけど毎回忘れるのでメモ。

下記の環境変数と、gitコマンドによる取得を試しています。

確認に使ったyamlファイル

name: Build

on:
  workflow_dispatch: # 手動で任意のブランチをビルドしたい
  pull_request:
    branches:
      - main         # mainあてのPRをビルドしたい
  push:
    branches:
      - main         # mainにPRがマージされてpushされたらビルドしたい
      - develop      # developにPRがマージされてpushされたらビルドしたい
    tags:
      - v*           # タグが打たれたらビルドしたい

jobs:
  prepare:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Set tag names
        id: tag_names
        run: |
          echo "GITHUB_EVENT_NAME                         =" "${GITHUB_EVENT_NAME}"
          # git コマンドでの習得テスト (sedは、いろいろ試しているときの消し忘れなので気にしないでください)
          echo "git branch --show-current | sed 's|/|-|g' =" $(git branch --show-current | sed 's|/|-|g')
          echo "git rev-parse --short HEAD                =" $(git rev-parse --short HEAD)
          echo "git describe --tags --always              =" $(git describe --tags --always)
          # 環境変数での習得テスト
          echo "GITHUB_REF#refs/heads/                    =" "${GITHUB_REF#refs/heads/}"
          echo "GITHUB_HEAD_REF#refs/heads/               =" "${GITHUB_HEAD_REF#refs/heads/}"
          echo "GITHUB_BASE_REF#refs/heads/               =" "${GITHUB_BASE_REF#refs/heads/}"

トリガーごとの動作

1. push branch

mainブランチをpushする。
(mainあてのPRがマージされたときも同じ)

image.png

gitコマンドでも環境変数でも取れる。
git describe --tags --always はalwaysオプションつけているので、タグが無いときはコミットハッシュがとれています。

2. pull_request

feature/test01 -> main のPRを作成。

image.png

PRをマージした場合のcommit hashについて、ビルドしてdockerイメージを作りたい。
イメージのタグはPRもとのブランチ名にしたい。
そんなときは GITHUB_HEAD_REF から取る。

3. push tag

github web-ui から v0.0.1 というリリースを作成。

image.png

ブランチ名など存在しませんよ。

4. workflow_dispatch

github web-ui から feature/test01 というブランチを選んで Run workflow

image.png

push branchとおんなじですね。

まとめ

この記事を書いたことを覚えていますように :pray:

11
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
11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?