CI: add setup gate job with workflow_dispatch target filtering and uncomment NetBSD/DragonFlyBSD jobs#66
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Introduces a
setupgating job that resolves the effective target listexactly once and exposes it as a workflow output. Every other job gates
on that output, giving a single source of truth for which targets are
enabled. Adds
workflow_dispatchsupport so any subset of targets canbe triggered ad-hoc from the Actions tab without editing the workflow
file. NetBSD and DragonFlyBSD jobs are promoted from commented-out
blocks to real jobs (still off by default via the gate).
setupJob — Target GatingA new
setupjob runs first onubuntu-latestand emits a singleenabled_targetsoutput consumed by every downstream job.The default target list (
DEFAULT) lives in exactly one place insidethis job. To permanently disable a target, remove its ID from
DEFAULT. Currently absent fromDEFAULT(and therefore off bydefault):
netbsd— package CDN intermittently times outdragonflybsd— FPC 3.2.x TLS broken; pure-Pascal DNS resolver bugOn
push/pull_request/scheduletriggers there is noinputscontext, soINPUT_TARGETSis empty and the job fallsthrough to
DEFAULT.workflow_dispatchwith an empty textbox also sends an empty string(the declared
default:is suppressed by GitHub in that case), so ittoo falls through to
DEFAULT.When the user types a non-empty comma-separated list in the dispatch
input, whitespace is stripped and that list overrides
DEFAULT.The resolved list and its source (
defaultvsworkflow_dispatch input) are printed as a::notice::annotation in the Actions log.workflow_dispatchInputLeaving the field empty (or not using
workflow_dispatchat all)produces the same result as a normal push build.
Per-Job Gating Changes
nativejobEach matrix entry gains an
idfield. A newCheck if target is enabledstep runs first, setssteps.gate.outputs.enabled, and allsubsequent steps are conditioned on
steps.gate.outputs.enabled == 'true'. This keeps all five runners in the matrix (no dynamic matrixgeneration needed) while still skipping the checkout and build steps for
disabled targets.
All other jobs (
linux-arm32,freebsd,netbsd,dragonflybsd,solaris)Each job gains:
The
formatwrapper ensures clean comma-boundary matching so e.g.linux-x64cannot accidentally matchlinux-x64insidelinux-arm64.NetBSD and DragonFlyBSD — Uncommented
Both jobs are promoted from commented-out YAML to real job definitions.
They retain their existing known-issue comments and are kept off by
default (absent from
DEFAULT) via the gate rather than by beingcommented out. This means their YAML is validated by GitHub on every
workflow parse, and they can be triggered on demand via
workflow_dispatchwithout any file edits.