ci(cutover): main's cutover.yml is edge's again, so the cutover PR merges (D397) #30

Merged
whitlocktech merged 1 commits from ci/cutover-yml-match-edge into main 2026-11-06 07:26:07 -06:00

View File

@@ -6,10 +6,10 @@
# gates have passed, cheapest first (the decisions are pure functions in tools/drill/cutover.js, tested
# by cutover.test.js, which PR Checks runs):
#
# 1. public Rust's public build is dated the wipe day or later AND names the same depot manifest as
# Rust's current STAGING build (Facepunch promotes staging to public, so the two agree once the
# cut over from staging to live went through). The static half runs twice, BRANCH=public and
# BRANCH=staging; only the staging run's manifest is used.
# 1. public Steam set Rust's public branch to its build on the wipe day or later (steamcmd's app info,
# branches.public.timeupdated, which the static half keeps as appinfo.txt) AND the Linux depot
# manifest Steam names for public is the one the static half downloaded. (The first design used
# the manifest's date and staging's manifest; neither works, see tools/drill/cutover.js.)
# 2. oxide Oxide's public build has caught up (0 members behind), the swap's field list is unchanged
# and RunicNPC compiles.
# 3. carbon `rust-carbon` restarts on public Rust with edge's RunicNPC.cs: its appmanifest names the
@@ -97,7 +97,6 @@ jobs:
timeout-minutes: 240
env:
WORK: ${{ github.workspace }}/cutover-work
STAGING_WORK: ${{ github.workspace }}/cutover-staging
# cutover.js treats a dispatch as dry unless this is exactly 'false'.
DRY_RUN_INPUT: ${{ github.event.inputs.dry_run }}
steps:
@@ -163,6 +162,7 @@ jobs:
[ -f drill-state/drill.json ] || echo '{}' > drill-state/drill.json
cat drill-state/drill.json
# With BRANCH=public it also keeps Steam's app info (appinfo.txt) for gate 1.
- name: Static half (Rust's public build)
if: ${{ steps.pending.outputs.run == 'true' }}
env:
@@ -171,16 +171,6 @@ jobs:
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: '1'
run: bash tools/drill/static.sh
# Only this run's manifest is used (gate 1): the build Rust has on staging now.
- name: Static half (Rust's staging build, for its manifest)
if: ${{ steps.pending.outputs.run == 'true' }}
env:
BRANCH: staging
WORK: ${{ github.workspace }}/cutover-staging
LC_ALL: C
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: '1'
run: bash tools/drill/static.sh
- name: Gates 1-3 (public build, Oxide, Carbon)
id: gates
if: ${{ steps.pending.outputs.run == 'true' }}
@@ -188,7 +178,7 @@ jobs:
GITEA_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
PANEL_KEY: ${{ secrets.PTERODACTYL_DRILL_KEY }}
run: >-
node tools/drill/cutover.js gates --state drill-state/drill.json --work "$WORK" --staging-work "$STAGING_WORK"
node tools/drill/cutover.js gates --state drill-state/drill.json --work "$WORK"
${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run != 'false') && '--dry-run' || '' }}
${{ github.event.inputs.force == 'true' && '--force' || '' }}
@@ -223,7 +213,7 @@ jobs:
env:
GITEA_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
run: >-
node tools/drill/cutover.js gates --after-live --state drill-state/drill.json --work "$WORK" --staging-work "$STAGING_WORK"
node tools/drill/cutover.js gates --after-live --state drill-state/drill.json --work "$WORK"
${{ (github.event_name == 'workflow_dispatch' && github.event.inputs.dry_run != 'false') && '--dry-run' || '' }}
${{ github.event.inputs.force == 'true' && '--force' || '' }}