From 6ca2f882def07a3d255070235b31270021c97972 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 11 May 2026 17:22:03 +0200 Subject: [PATCH 1/2] fix(gradle-build-pr): deduplicate junit_files glob to avoid double-counted results The previous junit_files config listed two overlapping globs: - artifacts/**/TEST-*.xml - artifacts/**/test-results/**/*.xml Both match the same Gradle JUnit reports (TEST-*.xml under test-results), so EnricoMi/publish-unit-test-result-action would parse each file twice and inflate the totals reported on PR comments and the check summary. Consolidate to the single canonical pattern artifacts/**/test-results/**/TEST-*.xml. --- .github/workflows/gradle-build-pr.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/gradle-build-pr.yml b/.github/workflows/gradle-build-pr.yml index 1acff80..abbc557 100644 --- a/.github/workflows/gradle-build-pr.yml +++ b/.github/workflows/gradle-build-pr.yml @@ -172,9 +172,7 @@ jobs: uses: EnricoMi/publish-unit-test-result-action@v2 if: always() with: - junit_files: | - artifacts/**/TEST-*.xml - artifacts/**/test-results/**/*.xml + junit_files: artifacts/**/test-results/**/TEST-*.xml check_name: "Test results" comment_mode: changes in failures report_individual_runs: true From c92f0067594a892ab7e8228f7465599e17b12287 Mon Sep 17 00:00:00 2001 From: Phillipp Glanz <6745190+TheMeinerLP@users.noreply.github.com> Date: Mon, 11 May 2026 19:15:56 +0200 Subject: [PATCH 2/2] docs(readme): pin all examples to v2.0.1 and drop misleading @v2 alias The floating @v2 tag was never auto-maintained (see PR #5), so README examples that used @v2 pointed to a tag that does not exist. Replace every @v2 with the current latest concrete tag (@v2.0.1) and clarify in the Versioning section that consumers must pin to a full vX.Y.Z and rely on Renovate for bumps. Also document the matrix artifact isolation behaviour shipped in v2.0.1 and remind contributors that PR titles must be conventional (otherwise squash merges skip release-please). --- README.md | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6a70259..fb8c337 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # OneLiteFeatherNET Reusable Workflows Central collection of reusable GitHub Actions workflows shared across -OneLiteFeatherNET repositories (Butterfly, Aonyx-bom, ...). +OneLiteFeatherNET repositories (Butterfly, Aonyx-bom, Titan, ...). Each workflow is exposed via `workflow_call` and consumed from downstream repositories by referencing a tagged release of this repo. @@ -30,17 +30,22 @@ repositories by referencing a tagged release of this repo. ## Versioning This repository is released via [release-please](https://github.com/googleapis/release-please). -Pin consumers to a tag (e.g. `@v2.0.0`) or a major (e.g. `@v2`) rather than -`main` for reproducible builds. +Pin consumers to a concrete tag (e.g. `@v2.0.1`) rather than `main` for +reproducible builds. There is intentionally no floating major alias such as +`@v2` — consumers pin to a full `vX.Y.Z` and let Renovate bump them. Use [Renovate](https://docs.renovatebot.com/modules/manager/github-actions/) in your consumer repository to auto-bump the version pin. The `github-actions` -manager picks up `uses: OneLiteFeatherNET/workflows/.github/workflows/foo.yml@vX` +manager picks up `uses: OneLiteFeatherNET/workflows/.github/workflows/foo.yml@vX.Y.Z` out of the box. A sample `renovate.json` is shipped at the root of this repo; copy it as a starting point. ## Usage examples +> All examples use the current latest tag `v2.0.1`. Substitute the freshest +> release (see [Releases](https://github.com/OneLiteFeatherNET/workflows/releases)) +> or rely on Renovate to bump. + ### Build a PR (Gradle) ```yaml @@ -49,7 +54,7 @@ on: [pull_request] jobs: build: - uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2.0.1 secrets: inherit ``` @@ -58,7 +63,7 @@ Single-OS, custom JDK, force-build: ```yaml jobs: build: - uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2.0.1 with: java-version: "21" runs-on: '["ubuntu-latest"]' @@ -71,7 +76,7 @@ Custom path filter (must define a `code:` key): ```yaml jobs: build: - uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-build-pr.yml@v2.0.1 with: paths-filters: | code: @@ -91,7 +96,7 @@ on: jobs: publish: - uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-publish.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/gradle-publish.yml@v2.0.1 secrets: inherit ``` @@ -109,7 +114,7 @@ permissions: jobs: release: - uses: OneLiteFeatherNET/workflows/.github/workflows/release-please.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/release-please.yml@v2.0.1 ``` ### Close invalid PRs @@ -122,7 +127,7 @@ on: jobs: close: - uses: OneLiteFeatherNET/workflows/.github/workflows/close-invalid-prs.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/close-invalid-prs.yml@v2.0.1 with: protected-branch: main ``` @@ -140,7 +145,7 @@ on: jobs: lint: - uses: OneLiteFeatherNET/workflows/.github/workflows/markdown-lint.yml@v2 + uses: OneLiteFeatherNET/workflows/.github/workflows/markdown-lint.yml@v2.0.1 with: force-lint: true ``` @@ -162,7 +167,9 @@ these secrets to be available in the caller repository (and forwarded via For `gradle-build-pr`, JUnit XML from every matrix job is uploaded as `test-reports--jdk` and merged by a downstream `test-report` job that uses [`EnricoMi/publish-unit-test-result-action`](https://github.com/marketplace/actions/publish-test-results) -to post a unified check and PR comment. +to post a unified check and PR comment. Each matrix runner's artifact extracts +into its own subdirectory so identically-named JUnit XML files from different +OSes never collide during aggregation. ## Debugging @@ -177,6 +184,10 @@ posted to the run summary and as PR comments via - Conventional Commits are required (`feat:`, `fix:`, `chore:`, ...). - Breaking changes use `feat!:` or `BREAKING CHANGE:` to trigger a major bump. - Releases are produced automatically by release-please on merge to `main`. +- **PR titles must also be conventional** — GitHub uses the PR title as the + squash-merge commit subject, and release-please only picks up commits with a + proper Conventional prefix. A non-conventional squash title (e.g. + `Remove merge-multiple option`) silently skips the release. ## License