Skip to content

Add start gate abort window to publish workflow#144

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/pipeline-delay-timer-SwV3q
May 16, 2026
Merged

Add start gate abort window to publish workflow#144
bernardladenthin merged 1 commit into
mainfrom
claude/pipeline-delay-timer-SwV3q

Conversation

@bernardladenthin
Copy link
Copy Markdown
Owner

Summary

Adds a configurable "start gate" job to the publish workflow that creates a cancellable abort window before the pipeline begins. This allows developers to cancel the workflow during a grace period after triggering it, before any actual build work starts.

Changes

  • New startgate job: A simple job that runs on ubuntu-latest using the startgate GitHub Environment, which has a configurable wait timer (configured in repository Settings → Environments → startgate → Wait timer)
  • Updated all build/test jobs: Added needs: startgate dependency to all 10 downstream jobs:
    • crosscompile-linux-x86_64-cuda
    • crosscompile-linux-x86_64
    • crosscompile-linux-aarch64
    • crosscompile-android-aarch64
    • build-macos-arm64-no-metal
    • build-macos-arm64-metal
    • build-windows-x86_64
    • build-windows-x86
    • test-cpp-linux-x86_64
    • test-macos-arm64-metal-15

Implementation Details

The startgate job is a minimal gate that simply echoes a message upon completion. The actual abort window is enforced by GitHub's environment wait timer feature, which pauses job execution until the timer expires or is manually approved. This provides a safety mechanism to catch and cancel unintended workflow runs before expensive cross-compilation and testing jobs begin.

https://claude.ai/code/session_01TGzxSDP2uzsGiJupDsNad1

Gate the entire pipeline behind a single 'startgate' GitHub Environment
so any run can be cancelled (push, PR, tag, workflow_dispatch) before
runner-heavy jobs start. Wait duration lives in the environment's
Wait timer setting (currently 15 min), so changing it requires no
YAML edit. Naming leaves room for future gates (e.g. releasegate).
@bernardladenthin bernardladenthin merged commit 6a8c7db into main May 16, 2026
3 of 4 checks passed
@bernardladenthin bernardladenthin deleted the claude/pipeline-delay-timer-SwV3q branch May 16, 2026 12:39
@claude
Copy link
Copy Markdown

claude Bot commented May 16, 2026

Review Summary

This PR implements a cancellable abort window for the publish workflow using GitHub's Environment wait timer feature. The implementation is sound and follows GitHub Actions best practices.

Strengths:

  • Clean, minimal implementation - the startgate job is simple and does exactly what it needs.
  • Correct dependency declaration - all 10 build/test jobs properly declare needs: startgate.
  • Good documentation - inline comments explain the feature and configuration location.
  • No security concerns - job uses no secrets and poses no risk.
  • Transitive dependencies handled correctly - Java test jobs inherit the delay without explicit redeclaration.

Operational Requirements:
The feature requires external setup in repository settings:

  • Navigate to Settings > Environments > startgate
  • Configure a Wait timer (duration in minutes)
  • Without this, the gate becomes a no-op

Recommendation: Document this setup requirement in CONTRIBUTING guide so operators know it needs explicit configuration.

No code issues found. Ready to merge pending environment setup verification.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants