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

pushとpull_requestどちらでも実行するgithub actionsをpull_requestだけ効率化するconcurrency例

Last updated at Posted at 2024-09-12

前提

例えば以下のような、PRのイベントでもマージ後のpushでも実行するgithub actionがあるとする

on:
  push:
    branches:
      - develop
      - feature/**
      - main
  pull_request:

ここから更に、以下の要求を満たしたい

  • PRへのpushなどのイベントのときは、古い実行を取り消して新しい実行だけにしてCI待ち時間を効率化したい
  • ただし branches へのpushイベントのときは、不整合が起きないように毎回新しいactionを全部実行するままにしたい

方法

concurrency:
  group: ${{ github.workflow }}-${{ github.event.number || github.sha }}
  cancel-in-progress: true

github.workflow: ワークフロー名
github.event.number || github.sha: on pull_requestならPR番号が入っているので、PRでグループ化される。on pushならそれがundefinedになり github.sha が使われ、pushのたびに別グループになる

参考

余談

group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}

でも、github.head_refはPRのときだけhead branch名が入る ので同等のことができるかもしれない

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