feat: add manual matrix trigger job for on-demand pool churn

- New 'manual-matrix-run' job with play button in GitLab UI
- Click to run full 42-language matrix without creating a tag
- Useful for load testing, pool churn, and QR lib testing
- Added --force-all flag to generate-matrix.sh
This commit is contained in:
russell@unturf.com 2026-01-25 08:14:17 -05:00
parent eeb1dcb3dc
commit c59e69eb52
2 changed files with 36 additions and 0 deletions

View file

@ -11,6 +11,37 @@ default:
tags:
- build
# ============================================================================
# MANUAL TRIGGER: Run Full Test Matrix On Demand
# ============================================================================
# Click the play button in GitLab UI to run the full 42-language matrix
# without needing to create a tag. Useful for load testing & pool churn.
manual-matrix-run:
stage: test
script:
- echo "Generating full test matrix..."
- bash scripts/generate-matrix.sh --force-all
- echo "Matrix generated, triggering child pipeline..."
artifacts:
paths:
- test-matrix.yml
expire_in: 1 hour
rules:
- when: manual
allow_failure: true
manual-matrix-trigger:
stage: test
needs:
- manual-matrix-run
trigger:
include:
- artifact: test-matrix.yml
job: manual-matrix-run
strategy: depend
rules:
- when: on_success
# CI variables UNSANDBOX_PUBLIC_KEY, UNSANDBOX_SECRET_KEY, DEPLOY_KEY
# are configured in GitLab Settings > CI/CD > Variables

View file

@ -5,10 +5,15 @@
set -e
# CRITICAL: Tags ALWAYS run full test matrix, no matter what
# Also support --force-all flag or FORCE_FULL_MATRIX env var for manual triggers
if [ -n "$CI_COMMIT_TAG" ]; then
echo "Tag detected ($CI_COMMIT_TAG) - forcing full test matrix"
TEST_ALL="true"
CHANGED_LANGS=""
elif [ "$1" = "--force-all" ] || [ "$FORCE_FULL_MATRIX" = "true" ]; then
echo "Manual trigger - forcing full test matrix"
TEST_ALL="true"
CHANGED_LANGS=""
else
# Read changes from detect-changes output
CHANGES=$(cat changes.json)