|
@@ -31,7 +31,10 @@ jobs:
|
|
|
# repository state — not PR-editable, no merge required) retargets all
|
|
# repository state — not PR-editable, no merge required) retargets all
|
|
|
# three onto the in-house
|
|
# three onto the in-house
|
|
|
# vm-backup pool and re-running the failed jobs is the entire switch —
|
|
# vm-backup pool and re-running the failed jobs is the entire switch —
|
|
|
- # see .agents/notes/implemented/process/2026-07-26-ci-failover-runbook.md. The
|
|
|
|
|
|
|
+ # see .agents/notes/implemented/process/2026-07-26-ci-failover-runbook.md.
|
|
|
|
|
+ # Setting the variable to 'blacksmith' instead routes the same jobs onto
|
|
|
|
|
+ # Blacksmith's hosted runners at the matching vCPU size (see
|
|
|
|
|
+ # .agents/notes/implemented/process/2026-09-09-blacksmith-failover-leg.md). The
|
|
|
# in-house pool's readiness is re-proven on every master push by the
|
|
# in-house pool's readiness is re-proven on every master push by the
|
|
|
# serial-linux-selfhosted standby lane in ci-master.yml. The Windows failover
|
|
# serial-linux-selfhosted standby lane in ci-master.yml. The Windows failover
|
|
|
# switch is the separate DSH_CI_FAILOVER_WINDOWS variable on the windows-native
|
|
# switch is the separate DSH_CI_FAILOVER_WINDOWS variable on the windows-native
|
|
@@ -39,7 +42,8 @@ jobs:
|
|
|
node-24:
|
|
node-24:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_LINUX == 'blacksmith' && 'blacksmith-16vcpu-ubuntu-2404'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
@@ -105,7 +109,8 @@ jobs:
|
|
|
node-24-coverage:
|
|
node-24-coverage:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_LINUX == 'blacksmith' && 'blacksmith-16vcpu-ubuntu-2404'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
@@ -226,7 +231,8 @@ jobs:
|
|
|
node-24-consumers:
|
|
node-24-consumers:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_LINUX == 'blacksmith' && 'blacksmith-16vcpu-ubuntu-2404'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
|| 'dsh-ubuntu-24-04-16core' }}
|
|
@@ -327,9 +333,12 @@ jobs:
|
|
|
|
|
|
|
|
node-compat:
|
|
node-compat:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
- # This job admits only repository-owned PR code to the persistent shared VM.
|
|
|
|
|
|
|
+ # Under the selfhosted leg this job admits only repository-owned PR code
|
|
|
|
|
+ # to the persistent shared VM; the blacksmith branch targets ephemeral
|
|
|
|
|
+ # runners and carries none of those predicates.
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_LINUX == 'blacksmith' && 'blacksmith-4vcpu-ubuntu-2404'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
&& github.event.pull_request.head.repo.full_name == github.repository
|
|
&& github.event.pull_request.head.repo.full_name == github.repository
|
|
|
&& github.event.pull_request.head.repo.fork == false
|
|
&& github.event.pull_request.head.repo.fork == false
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
@@ -451,7 +460,8 @@ jobs:
|
|
|
windows-build:
|
|
windows-build:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'blacksmith' && 'blacksmith-16vcpu-windows-2025'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
|
|| 'dsh-windows-2025-16core' }}
|
|
|| 'dsh-windows-2025-16core' }}
|
|
@@ -495,7 +505,8 @@ jobs:
|
|
|
windows-coverage:
|
|
windows-coverage:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'blacksmith' && 'blacksmith-16vcpu-windows-2025'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
|
|| 'dsh-windows-2025-16core' }}
|
|
|| 'dsh-windows-2025-16core' }}
|
|
@@ -571,7 +582,8 @@ jobs:
|
|
|
windows-native-tests:
|
|
windows-native-tests:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'blacksmith' && 'blacksmith-16vcpu-windows-2025'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
|
|| 'dsh-windows-2025-16core' }}
|
|
|| 'dsh-windows-2025-16core' }}
|
|
@@ -620,7 +632,8 @@ jobs:
|
|
|
if: github.event_name == 'pull_request'
|
|
if: github.event_name == 'pull_request'
|
|
|
continue-on-error: true
|
|
continue-on-error: true
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_WINDOWS == 'blacksmith' && 'blacksmith-16vcpu-windows-2025'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_WINDOWS == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
&& fromJSON('["self-hosted", "dsh-win-ci", "windows"]')
|
|
|
|| 'dsh-windows-2025-16core' }}
|
|
|| 'dsh-windows-2025-16core' }}
|
|
@@ -675,9 +688,13 @@ jobs:
|
|
|
# the worker jobs it aggregates, so a standard-hosted outage cannot strand
|
|
# the worker jobs it aggregates, so a standard-hosted outage cannot strand
|
|
|
# the branch-protection verdict either. It retargets with the Linux switch
|
|
# the branch-protection verdict either. It retargets with the Linux switch
|
|
|
# (DSH_CI_FAILOVER_LINUX), not the Windows one, because it aggregates the
|
|
# (DSH_CI_FAILOVER_LINUX), not the Windows one, because it aggregates the
|
|
|
- # required Linux workers and runs on the vm-backup pool.
|
|
|
|
|
|
|
+ # required Linux workers and runs on the vm-backup pool. Under the
|
|
|
|
|
+ # 'blacksmith' value the verdict shares Blacksmith's pool with its workers
|
|
|
|
|
+ # through the same selector, so a Blacksmith outage strands both together —
|
|
|
|
|
+ # the accepted consequence of the explicit opt-in switch.
|
|
|
runs-on: >-
|
|
runs-on: >-
|
|
|
- ${{ vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
|
|
|
|
+ ${{ vars.DSH_CI_FAILOVER_LINUX == 'blacksmith' && 'blacksmith-4vcpu-ubuntu-2404'
|
|
|
|
|
+ || vars.DSH_CI_FAILOVER_LINUX == 'selfhosted'
|
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
&& github.event.pull_request.user.login != 'dependabot[bot]'
|
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
&& fromJSON('["self-hosted", "linux", "x64", "vm-backup"]')
|
|
|
|| 'ubuntu-latest' }}
|
|
|| 'ubuntu-latest' }}
|