Files
Martin Vogel 3fc93d12da ci: unify smoke/soak/test venues onto canonical leg entries
The staged venue-unification bundle: _smoke.yml onto the shared
wrappers with an extracted-artifact input (CBM_SMOKE_ARTIFACT_DIR),
soak-legs.sh as the one canonical soak entry (quick + query-leak legs
across all venues), protected per-user TEMP roots shared across
venues, clean-disk preflights before every VM/Docker run, win.sh and
run.sh routed through the canonical scripts, soak.yml retired, and
the venue-parity contract (whitelist walker: workflows may provision
or call canonical entries, nothing else).

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
2026-07-26 22:23:05 +02:00

46 lines
1.7 KiB
YAML

# Soak dispatcher — the weekly scheduled soak AND every on-demand soak run.
#
# Absorbs the retired soak.yml (the standalone "multi-hour #581" workflow): its
# reasons to exist — a job budget that actually covers a 4h run, and the
# query-leak mode that never reindexes so the #581 leak can accumulate — are
# now _soak.yml facts (timeout 560, legs input). A long #581-only run is
# `legs: query-leak` here, not a separate workflow with its own copy of the
# soak procedure. NON-GATING: never a required check, never blocks a merge.
name: Nightly Soak
on:
schedule:
- cron: '0 2 * * 0' # Every Sunday at 2am UTC
workflow_dispatch:
inputs:
duration_minutes:
description: 'Soak duration in minutes PER LEG (default: 240 = 4h)'
type: number
default: 240
legs:
description: 'Soak legs (query-leak = the #581 detector alone)'
type: choice
options: ['quick,query-leak', 'quick', 'query-leak']
default: 'quick,query-leak'
run_asan:
description: 'Also run the 15-min ASan soak legs'
type: boolean
default: true
# Iteration convenience carried over from soak.yml: pushing a qa/soak-**
# branch starts a real run from that branch's own copy of the workflows.
push:
branches: ['qa/soak-**']
permissions:
contents: read
jobs:
soak:
uses: ./.github/workflows/_soak.yml
with:
# On schedule/push events the inputs context is empty — fall back to the
# weekly defaults (4h, both legs, ASan on).
duration_minutes: ${{ inputs.duration_minutes || 240 }}
legs: ${{ inputs.legs || 'quick,query-leak' }}
run_asan: ${{ github.event_name != 'workflow_dispatch' || inputs.run_asan }}