Skip to content

Add incremental publishing to a token-free gh-pages Maven repo#10

Merged
aneveux merged 1 commit into
masterfrom
feat/incrementals-gh-pages
Jul 15, 2026
Merged

Add incremental publishing to a token-free gh-pages Maven repo#10
aneveux merged 1 commit into
masterfrom
feat/incrementals-gh-pages

Conversation

@aneveux

@aneveux aneveux commented Jul 15, 2026

Copy link
Copy Markdown
Owner

What

Publishes garnish to a token-free static Maven repo on GitHub Pages, modelled on Jenkins Incrementals. Every commit on master becomes a unique, immutable version — no auth needed to consume.

How

  • Version scheme${revision}${changelist}. Local builds resolve to 0.3.0-SNAPSHOT; CI passes -Dset.changelist and the git-changelist-maven-extension (in .mvn/) rewrites changelist to -rc<commitcount>.<sha>. flatten-maven-plugin bakes the resolved version into the deployed POMs.
  • incrementals.yml (new) — on master push: build, test, deploy to gh-pages (fetch-depth: 0, accumulate existing repo, prune, publish via peaceiris).
  • prune-maven-repo.py (new) — rolling window of the newest 5 versions, regenerates maven-metadata.xml + checksums.
  • release.yml — slimmed to v* tags: GitHub Release with auto notes + update-site link + consumer snippet for the exact version.
  • ci.yml — dropped the dead main push trigger (repo uses master); PR gate remains.
  • Removed the GitHub Packages distributionManagement; fixed scm url mainmaster.

Verified locally (Java 25 / Maven 3.9.16)

  • Dormant mvn verify0.3.0-SNAPSHOT, tests + coverage gate pass.
  • -Dset.changelist deploy → 0.3.0-rc11.e435a_05c89b_4, correct Maven2 layout, self-contained flattened POMs + checksums.
  • Dirty-tree guard fails as designed.
  • Prune script: oldest dropped, 5 kept, metadata + checksums consistent.
  • Real consumer resolved the artifact + full transitive Tamboui tree from a plain <repository> with no auth.

Manual step after merge

Settings → Pages → Source = Deploy from a branchgh-pages / root (after the first incrementals.yml run creates the branch).

Note: 5-version retention means a pinned-but-pruned version stops resolving — a deliberate divergence from real Jenkins incrementals (which keep everything forever). Fine for a personal lib.

@aneveux
aneveux merged commit a1ef3a5 into master Jul 15, 2026
1 check passed
@aneveux
aneveux deleted the feat/incrementals-gh-pages branch July 15, 2026 14:59
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.

1 participant