ci(cutover): main's cutover.yml is edge's again, so the cutover PR merges (D397) #30
@@ -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' || '' }}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user