From 0bf418f5765ed93e694e75cd059b3892421bfaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 01/11] dummy: break compilation (1/10) --- src/util/check.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/check.h b/src/util/check.h index 34801ca0e8ba..ba2e7bb555c2 100644 --- a/src/util/check.h +++ b/src/util/check.h @@ -15,6 +15,8 @@ #include #include +static_assert(false, "CI demo: intentionally break compilation"); + constexpr bool G_FUZZING_BUILD{ #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION true From 54af6d9c124992a08091b5f82759a251574cd86e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 02/11] dummy: fix compilation (2/10) --- src/util/check.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/util/check.h b/src/util/check.h index ba2e7bb555c2..34801ca0e8ba 100644 --- a/src/util/check.h +++ b/src/util/check.h @@ -15,8 +15,6 @@ #include #include -static_assert(false, "CI demo: intentionally break compilation"); - constexpr bool G_FUZZING_BUILD{ #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION true From 0ed403932cc8a1b4333df2321e2682945eaf47f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 03/11] dummy: no-op (3/10) From 7a3aa414c1a71f047addd9ddafb4b995a0e45aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 04/11] dummy: no-op (4/10) From a9bc2980256d66d81bfc7791e22df33ce67a07ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 05/11] dummy: no-op (5/10) From 0e12ed1c0c8cdd30ac5a6b1ecf221e02faa12fb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 06/11] dummy: no-op (6/10) From 12d749a98d9735ca4c857a024a3ff2eb224f16d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:34 +0100 Subject: [PATCH 07/11] dummy: no-op (7/10) From d5e3b62ed6582c55a06400b48c71224d4d08de2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:35 +0100 Subject: [PATCH 08/11] dummy: no-op (8/10) From 2097e1b0db0fb9a4e1391f791e9fd57baeb2d88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:35 +0100 Subject: [PATCH 09/11] dummy: no-op (9/10) From 39dab6057b9499ca533d0b84a0b292e17678d2ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Thu, 22 Jan 2026 14:53:35 +0100 Subject: [PATCH 10/11] dummy: no-op (10/10) From 8078d793d0511aa3e277252a277195d71160adc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C5=91rinc?= Date: Mon, 26 Jan 2026 17:02:48 +0100 Subject: [PATCH 11/11] ci: remove commit count limit from `test-each-commit` Extend `test-each-commit` to run on every non-head pull request commit. The PR tip is excluded because it is already covered by other CI jobs. Runner was changed to a performant cirrus runner. Co-authored-by: MarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz> --- .github/workflows/ci.yml | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f54e06616f76..f5f812e2a2db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,12 +56,11 @@ jobs: fi test-each-commit: - name: 'test max 6 ancestor commits' - runs-on: ubuntu-24.04 + name: 'test ancestor commits' + needs: runners + runs-on: ${{ needs.runners.outputs.provider == 'cirrus' && 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md' || 'ubuntu-24.04' }} if: github.event_name == 'pull_request' && github.event.pull_request.commits != 1 - timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. Assuming a worst case time of 1 hour per commit, this leads to a --max-count=6 below. - env: - MAX_COUNT: 6 # Keep in sync with name above + timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. steps: - name: Determine fetch depth run: echo "FETCH_DEPTH=$((${{ github.event.pull_request.commits }} + 2))" >> "$GITHUB_ENV" @@ -77,14 +76,8 @@ jobs: # head commit that are already run by other jobs. git checkout HEAD~ # Figure out test base commit by listing ancestors of HEAD, excluding - # ancestors of the most recent merge commit, limiting the list to the - # newest MAX_COUNT ancestors, ordering it from oldest to newest, and - # taking the first one. - # - # If the branch contains up to MAX_COUNT ancestor commits after the - # most recent merge commit, all of those commits will be tested. If it - # contains more, only the most recent MAX_COUNT commits will be - # tested. + # ancestors of the most recent merge commit, ordering it from oldest to + # newest, and taking the first one. # # In the command below, the ^@ suffix is used to refer to all parents # of the merge commit as described in: @@ -98,7 +91,7 @@ jobs: if test -n "$MERGE_BASE"; then EXCLUDE_MERGE_BASE_ANCESTORS=^${MERGE_BASE}^@ fi - echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV" + echo "TEST_BASE=$(git rev-list -n${{ github.event.pull_request.commits }} --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV" - run: | git fetch origin "${GITHUB_BASE_REF}" git config user.email "ci@example.com"