[PATCH] ci: avoid unnecessary builds
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Nov 3, 2022, 13:34 UTC
- Message-ID
- <pull.1404.git.1667482458622.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
Whenever a branch is pushed to a repository which has GitHub Actions enabled, a bunch of new workflow runs are started.
We sometimes see contributors push multiple branch updates in rapid succession, which in conjunction with the impressive time swallowed by even just a single CI build frequently leads to many queued-up runs.
This is particularly problematic in the case of Pull Requests where a single contributor can easily (inadvertently) prevent timely builds for other contributors.
To help with this situation, let's use the `concurrency` feature of GitHub workflows, essentially canceling GitHub workflow runs that are obsoleted by more recent runs: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
ci: avoid unnecessary builds
Just something I noticed recently and only got around to implement
today.Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1404%2Fdscho%2Favoid-unnecessary-ci-builds-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1404/dscho/avoid-unnecessary-ci-builds-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/1404
.github/workflows/check-whitespace.yml | 5 +++++ .github/workflows/l10n.yml | 5 +++++ .github/workflows/main.yml | 5 +++++ 3 files changed, 15 insertions(+)
diff --git a/.github/workflows/check-whitespace.yml b/.github/workflows/check-whitespace.yml index ad3466ad16e..8a4c4bfbb93 100644 --- a/.github/workflows/check-whitespace.yml +++ b/.github/workflows/check-whitespace.yml @@ -9,6 +9,11 @@ on: pull_request: types: [opened, synchronize] +# Avoid unnecessary builds +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: check-whitespace: runs-on: ubuntu-latest diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml index 27f72f0ff34..77d9a416289 100644 --- a/.github/workflows/l10n.yml +++ b/.github/workflows/l10n.yml @@ -2,6 +2,11 @@ name: git-l10n on: [push, pull_request_target] +# Avoid unnecessary builds +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: git-po-helper: if: >- diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 831f4df56c5..cf47f0ccfed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -2,6 +2,11 @@ name: CI on: [push, pull_request] +# Avoid unnecessary builds +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + env: DEVELOPER: 1 base-commit: e7e5c6f715b2de7bea0d39c7d2ba887335b40aa0
-- gitgitgadget