ci(publish): SNAPSHOTs to forge Maven registry, releases to both #2

Merged
mph merged 2 commits from forge-maven-publish into main 2026-07-11 07:13:48 +00:00
Owner

What

Rewire the Publish workflow so it targets the forge Maven registry for snapshots and both registries for releases:

  • push to main → publish the current -SNAPSHOT to the Forgejo Maven registry (MavenPublishModule). Snapshots no longer go to Sonatype Central (the Central Portal hosts releases only).
  • v* tag → publish the release to the forge and Sonatype Central (PGP-signed, as before).

Why

Part of the registry cutover (procedures #597). The containerised Forgejo runner can't see forge's ~/.ivy2/local, so the works.iterative SNAPSHOTs it consumes must live in a real registry. The forge's own Maven registry is the home for snapshots; Central stays the home for tagged releases.

Credentials

iterative-works org-level Actions secrets (already set):

  • MILL_MAVEN_USERNAME / MILL_MAVEN_PASSWORD — forge registry (write:package token)
  • MILL_PGP_SECRET_BASE64 / MILL_SONATYPE_USERNAME / MILL_SONATYPE_PASSWORD — Central releases

Verification

The publish mechanism was validated by hand: all six modules published to the forge registry and resolved back anonymously from a clean cache (transitive chain intact). Merging this to main is the first end-to-end CI run — it exercises the runner-container → forge network path for the actual upload.

## What Rewire the Publish workflow so it targets the **forge Maven registry** for snapshots and **both** registries for releases: - **push to `main`** → publish the current `-SNAPSHOT` to the Forgejo Maven registry (`MavenPublishModule`). Snapshots no longer go to Sonatype Central (the Central Portal hosts releases only). - **`v*` tag** → publish the release to the forge **and** Sonatype Central (PGP-signed, as before). ## Why Part of the registry cutover (procedures #597). The containerised Forgejo runner can't see forge's `~/.ivy2/local`, so the `works.iterative` SNAPSHOTs it consumes must live in a real registry. The forge's own Maven registry is the home for snapshots; Central stays the home for tagged releases. ## Credentials `iterative-works` org-level Actions secrets (already set): - `MILL_MAVEN_USERNAME` / `MILL_MAVEN_PASSWORD` — forge registry (`write:package` token) - `MILL_PGP_SECRET_BASE64` / `MILL_SONATYPE_USERNAME` / `MILL_SONATYPE_PASSWORD` — Central releases ## Verification The publish mechanism was validated by hand: all six modules published to the forge registry and resolved back anonymously from a clean cache (transitive chain intact). Merging this to `main` is the first end-to-end CI run — it exercises the runner-container → forge network path for the actual upload.
ci(publish): publish SNAPSHOTs to the forge Maven registry, releases to both
Some checks failed
CI / build (pull_request) Failing after 1m59s
92e8fc5c4c
Every main push now publishes the current -SNAPSHOT to the Forgejo Maven
registry via MavenPublishModule; v* tags additionally publish the release to
Sonatype Central (PGP-signed). Snapshots no longer target Central, which hosts
releases only — the forge registry is their home.

Credentials are iterative-works org-level Actions secrets: MILL_MAVEN_* for the
forge registry, MILL_PGP_SECRET_BASE64 + MILL_SONATYPE_* for Central.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ci: use forgejo/upload-artifact on the Forgejo runner
All checks were successful
CI / build (pull_request) Successful in 1m50s
2c4793839b
actions/upload-artifact@v4+ uses the @actions/artifact v2 backend, which the
Forgejo Actions runner does not implement ("not supported on GHES"), failing the
build after tests pass. Swap both upload steps to the Forgejo-native
code.forgejo.org/forgejo/upload-artifact@v4, mirroring the procedures CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mph merged commit 95c16ebb62 into main 2026-07-11 07:13:48 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/scalatags-datastar!2
No description provided.