diff options
| author | Ivan Gabaldon <igabaldon@inetol.net> | 2025-05-14 23:43:38 +0200 |
|---|---|---|
| committer | Ivan Gabaldon <igabaldon@inetol.net> | 2025-05-15 11:19:28 +0200 |
| commit | bec76bc2e3cfd8160de80fb924b058c0f10f0140 (patch) | |
| tree | cfcd8cb0e53f681b6ac7a9dd10d4e18b20137db0 /.github/workflows/container.yml | |
| parent | d0b7f26f4bbe95a17a171ba77fbbed0b8427ce28 (diff) | |
[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-<arch>".
* 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.
Diffstat (limited to '.github/workflows/container.yml')
| -rw-r--r-- | .github/workflows/container.yml | 2 |
1 files changed, 1 insertions, 1 deletions
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: |