Repository navigation
ci: run touched port tests on pull requests - #509
Merged
Merged
Conversation
…on paid work for port co-maintainers
…, exact port match, docs)
…ger wrong in CONTRIBUTING.md; overlong workflow comments reflowed. GOVERNANCE.md paid-work commitment checked, accurate.
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.
pr-ci run on this PR (all jobs green,
java-slowincluded): https://github.com/metaobjectsdev/metaobjects/actions/runs/40996491721What Changed
.github/workflows/pr-ci.yml. On each pull request it selects the ports touched by the change viascripts/ci-affected-ports.shand runs theirci-local.shlanes with--no-integration. Docs-only changes run just thegateslane. A finalpr-cijob passes only when every selected lane passed.CONTRIBUTING.mdand theconformance.ymlandscripts/ci-local.shheader comments to describe the new PR behavior. Docker integration suites stay on release tags and manual dispatch.GOVERNANCE.md: a port maintainer gets first call on paid work in their port, as an offer only, with no role, vote or review exception.Validation
Risk Assessment
✅ Low: Additive PR workflow that wraps the existing ci-local.sh lanes the same way conformance.yml does, plus docs; both earlier-round fixes (empty env key removed, ts timeout raised to 60) are verified in place.
Testing
Driven live: the port selector maps a real commit range to the expected ports, a root-markdown-only change selects no ports, and the ci-local plan lists the TS lanes. Baseline TS lanes were green. Not driven: the pr-ci workflow loading on GitHub and running a touched port's tests on a real PR, which needs a pushed PR. The full repository regression suite (
scripts/ci-local.shfull run, including Java, Python, C# lanes) was not run in this step; only the scoped baseline ran. Overall: no failures found, but live coverage is too thin to call go.scripts/ci-local.shwith no flags.Evidence: selector and plan command output (live)
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
.github/workflows/pr-ci.yml:89- Thetsjob setstimeout-minutes: 40, and itsts-fastmatrix leg carries the ~30-minute mutation gate. Measured hosted durations: 35m13s on this branch's own pr-ci run (40810755990, 03:12:02 to 03:47:15). The nightly conformance.yml ts-fast leg took 30m51s and 27m53s. That leaves about 5 minutes of headroom. A slow or contended hosted runner will hit the cap and report the lanecancelled. Thepr-ciaggregate then goes red on a correct TS change, which teaches contributors to ignore the check. conformance.yml sets no timeout for the same lane (default 360). Fix: raisetimeout-minuteson thetsjob to about 60. Alternatively, give the ts-fast leg its own larger value and keep ts-unit's cap small..github/workflows/pr-ci.yml:121- Thejavajob declares astrategy.matrixwith one entry (lane: [java-slow]) and then routes it through aLANEenv var. The matrix only adds indirection. A plain step runningscripts/ci-local.sh --only java-slow --no-integration --strict-toolchainsis the narrower form with the same behavior.pr-ciis not yet a required check, so the job name changing fromjava (java-slow)tojavabreaks nothing.🔧 Fix applied.
1 info still open:
.github/workflows/pr-ci.yml:121- Thejavajob declares astrategy.matrixwith one entry (lane: [java-slow]) and then routes it through aLANEenv var. The matrix only adds indirection. A plain step runningscripts/ci-local.sh --only java-slow --no-integration --strict-toolchainsis the narrower form with the same behavior.pr-ciis not yet a required check, so the job name changing fromjava (java-slow)tojavabreaks nothing.scripts/ci-local.shwith no flags.scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchainssed -n 54,58p .github/workflows/pr-ci.yml(confirmed no emptyenv:on theselstep)scripts/ci-affected-ports.sh HEAD~1 HEADon merge commit 797c5b38a ->ts java python csharp(live selector run)scripts/ci-affected-ports.sh <P> <C>over the only-CONTRIBUTING.md commit -> no ports (live, docs-only at repo root selects nothing)scripts/ci-affected-ports.sh 33ac84184 33ac84184(empty range) -> no portsMO_CI_LIST_ONLY=1 scripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains(live plan listing)Baselinescripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains(given, already green)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.