From bec76bc2e3cfd8160de80fb924b058c0f10f0140 Mon Sep 17 00:00:00 2001 From: Ivan Gabaldon Date: Wed, 14 May 2025 23:43:38 +0200 Subject: [PATCH] [fix] CI: prevent race condition `checker.yml` and `integration.yml` are the only workflows that are currently safe to be executed simultaneously, the others present a risk that the order of completion may not be expected. The ones that are chained from `integration.yml` can be called as many times as `integration.yml` workflows are running at that moment, the same with the trigger "workflow_dispatch". This can be fatal for workflows like `container.yml` that use a centralized cache to store and load the candidate images in a common tag called "searxng-". * For example, a `container.yml` workflow is executed after being chained from `integration.yml` (called "~1"), and seconds later it may be triggered again because another PR merged some breaking changes (called "~2"). While "~1" has already passed the test job successfully and is about to start the release job, "~2" finishes building the container and overwrites the references on the common tag. When "~1" in the release job loads the images using the common tag, it will load the container of "~2" instead of "~1" having skipped the whole test job process. The example is only set for the container workflow, but the other workflows might occur in a similar way. --- .github/workflows/checker.yml | 2 +- .github/workflows/container.yml | 2 +- .github/workflows/data-update.yml | 2 +- .github/workflows/documentation.yml | 2 +- .github/workflows/l10n.yml | 2 +- .github/workflows/security.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/checker.yml b/.github/workflows/checker.yml index 2de3c9896..5383bbc21 100644 --- a/.github/workflows/checker.yml +++ b/.github/workflows/checker.yml @@ -8,7 +8,7 @@ on: - cron: "0 4 * * 5" concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml index 22d1c0266..93951674c 100644 --- a/.github/workflows/container.yml +++ b/.github/workflows/container.yml @@ -13,7 +13,7 @@ on: - master concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: diff --git a/.github/workflows/data-update.yml b/.github/workflows/data-update.yml index 1c7ff1c2d..37b226081 100644 --- a/.github/workflows/data-update.yml +++ b/.github/workflows/data-update.yml @@ -8,7 +8,7 @@ on: - cron: "59 23 28 * *" concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 629d9a272..05a507994 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -12,7 +12,7 @@ on: - master concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: diff --git a/.github/workflows/l10n.yml b/.github/workflows/l10n.yml index 4220c5c65..bba987d36 100644 --- a/.github/workflows/l10n.yml +++ b/.github/workflows/l10n.yml @@ -15,7 +15,7 @@ on: - cron: "05 07 * * 5" concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index d10d0c98b..e994306b8 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -8,7 +8,7 @@ on: - cron: "42 05 * * *" concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: ${{ github.workflow }} cancel-in-progress: false permissions: