Uh oh!
There was an error while loading. Please reload this page.
CI: Run the self-test on pull requests - #51
Open
ModeSevenIndustrialSolutions wants to merge 3 commits into
Open
Conversation
ModeSevenIndustrialSolutions
requested review from
a team
and
a balanced review from CopilotSeptember 1, 2026 14:47
Copilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 1, 2026 14:47 View session
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
ModeSevenIndustrialSolutionsforce-pushed
the
ci/pr-triggered-self-test
branch
from
September 1, 2026 15:59
d487583 to
9920cdeCompareCopilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 1, 2026 15:59 View session
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
ModeSevenIndustrialSolutionsforce-pushed
the
ci/pr-triggered-self-test
branch
from
September 1, 2026 16:10
9920cde to
bf59ad7CompareCopilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 1, 2026 16:10 View session
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
ModeSevenIndustrialSolutionsforce-pushed
the
ci/pr-triggered-self-test
branch
from
September 1, 2026 18:39
bf59ad7 to
1ef75bbCompareCopilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 1, 2026 18:40 View session
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
ModeSevenIndustrialSolutions
marked this pull request as draft
September 1, 2026 22:00
v0.4.0 places the shared JaCoCo execution data in <base>/target, which is the reactor root's own build directory. Maven orders the root last wherever the root artifact depends on one of its modules, so the root's clean runs after every subproject has contributed coverage and deletes the merged file. The report step then fails a build whose compile and tests both passed. v0.4.1 moves that file to <base>/.jacoco, which no module's clean owns, and v0.4.2 assembles the shared data after the build rather than during it. Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
The reusable Maven and Gradle lanes had no PR-time validation: the self-test was workflow_dispatch only, so pull requests ran the meta checks and never exercised the workflows themselves. Its last run was 2026-08-25 and it failed. A near-empty SBOM passing a Grype scan is exactly the kind of defect this hid. Switch to pull_request and drop workflow_dispatch, matching python-workflows. That repo documents why the manual trigger is unsafe here: a dispatch runs on the default branch and hands the job a cache token with default-branch write scope while it builds third-party code, which can poison caches later runs restore (CWE-349). Pull request runs write only to their own scope. Repoint the Maven lane at test-maven-project, as the file's own TODO asked. The fixture is a three-module reactor depending only on JUnit, so its egress footprint is the allow-listed toolchain set and the lane runs under block rather than audit. Its Failing*Test classes stay excluded unless the failing-tests profile is active. The Gradle lane keeps its pinned upstream target and audit egress because no test-gradle-project fixture exists yet, tracked in lfreleng-actions#50. Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutions
marked this pull request as ready for review
September 2, 2026 08:30
ModeSevenIndustrialSolutionsforce-pushed
the
ci/pr-triggered-self-test
branch
from
September 2, 2026 08:30
1ef75bb to
dc22699CompareCopilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 2, 2026 08:31 View session
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Copilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 2, 2026 14:10 View session
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
BRIEF.md listed a release number per building-block action. Dependabot maintains those pins weekly, so the list was stale within days of being written: it landed once in the initial commit and was never updated, through bumps to build-metadata-action, sbom-action and others. The claim the table supported is durable; the numbers were not. Keep the claim, that no action is consumed from an unreleased ref, and point at the '# vX.Y.Z' comment beside each 'uses:' as the record. A version list here only guarantees that every future bump PR contradicts the documentation. Add grype-scan-action to the building-block table. It composes the verify lane and appears in the job graph, but was absent. That entry names a role rather than a version, so it does not decay. Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Matthew Watkins <mwatkins@linuxfoundation.org>
ModeSevenIndustrialSolutionsforce-pushed
the
ci/pr-triggered-self-test
branch
from
September 2, 2026 14:50
3c43716 to
1656e75CompareCopilotstarted reviewing on behalf of ModeSevenIndustrialSolutionsSeptember 2, 2026 14:50 View session
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 freeto 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.
Closes#49.
Three commits:
Chore: Bump maven-build-action to v0.4.2CI: Run the self-test on pull requestsDocs: Correct the action pin release tableProblem
testing.yamlwasworkflow_dispatch:only. The reusable Maven and Gradle lanes had no PR-time validation at all — pull requests ran the meta-checks and never exercised the workflows themselves. Its last recorded run was 2026-08-25, and it failed.This is very likely why #47 went unnoticed: the Maven lane produces an SBOM containing a single unversioned dependency, Grype dutifully reports
No vulnerabilities found, and nothing ever checked.1. Bump
maven-build-actionv0.4.0 → v0.4.2v0.4.0places the shared JaCoCo execution data in<base>/target— the reactor root's own build directory. Maven orders the root last wherever the root artifact depends on one of its modules, so the root'scleanruns after every subproject has contributed coverage and deletes the merged file. The report step then fails a build whose compile and tests both passed.Fixed upstream by
cdc2803(2026-08-29), which moves the file to<base>/.jacoco— a directory no module'scleanowns — plus1803ab5, which assembles the shared data after the build rather than during it.v0.4.0was the last release without those.This lands first so the self-test commit needs no workaround.
2. Enable PR-time self-testing
workflow_dispatch:→pull_request:Adopts the trigger
python-workflowsuses, along with its documented rationale for excluding the manual one:This repo had not merely omitted
pull_request— it used exactly the triggerpython-workflowsrejected on cache-poisoning grounds, and omitted the one it adopted.Maven lane repointed at the fixture
blockegress instead ofaudit. The fixture depends only on JUnit, so its footprint is the allow-listed toolchain set. Theauditoverride existed solely because the placeholder's footprint was unknown; that justification is gone. Verified by three green runs, not assumed.refpin, matching howpython-workflowsreferences org-owned consumers.Safe to build unattended: the fixture ships
FailingGreeterTest, but its parent POM setssurefire.excludes = **/Failing*Test.javaand only thefailing-testsprofile clears it.Gradle lane unchanged
Keeps
onap/portal-ng-preferencesat its pinned commit withauditegress, pending a fixture (#50).Docs
README.mdanddocs/BRIEF.mdboth described the workflow asworkflow_dispatch-only and skipped on PRs, andBRIEF.mdlisted creating both fixtures as a prerequisite.3. Correct the action pin table
Copilot flagged the
maven-build-actionrow as stale. Cross-checking the rest against the actualuses:pins found four of five rows wrong andgrype-scan-actionmissing from both that table and the building-block table above it:build-metadata-actionmaven-build-actiongradle-build-actionjunit-test-report-actionsbom-actiongrype-scan-actionThe
maven-build-actionrow was already stale before this branch (v0.3.0documented against av0.4.0pin); the bump only made it visible. Kept as a separate commit since most of it is pre-existing drift.How the pin problem surfaced
Turning the self-test on failed
Maven Build/Test / Buildon the first run:I initially filed this as a new bug (lfreleng-actions/maven-build-action#139) — but it had been fixed three days earlier and verified against
opendaylight/yangtools, whose root sorts 120th of 120. The action was never broken onmain; this repo was pinned to the last release without the fix. #139 is closed as a duplicate.Coverage now demonstrably aggregates across modules rather than silently no-op'ing:
test-maven-projectis multi-module (parent/core/app); assert its badge/summary coverage reflects cross-module test attribution after the bump." It had never been executed, because there was nowhere to execute it.This PR makes the Java lanes testable. It does not make them correct.
The
Grype Audit SBOMcheck passes trivially against the near-empty SBOM measured in #47. A green run means "the Maven lane now runs on PRs", not "the Maven lane is healthy". #47 makes the result meaningful; this PR is its prerequisite.Rebase note
Rebased onto
mainafter #52 merged. Verified zeroissues: readreintroduced — this branch predated #52 and itstesting.yamlstill carried those lines, so a careless merge risked partially reverting your change.Validation
yamllint,actionlint,markdown-table-fixer— cleanprek runover changed files — all hooks passedzizmor --persona=auditorreports 2 pre-existingself-repositoryfindings on theuses: ./...lines — unchanged (2 before, 2 after) and deliberately not fixed, sinceactionlintdoes not yet understand the$/...syntax Zizmor wantsRelated
test-gradle-projectfixture