ci: build and publish on the forge (Forgejo runner + Maven registry) #37

Merged
mph merged 1 commit from forge-maven-registry into main 2026-07-13 09:43:31 +00:00
Owner

What

Move iw-support's CI and publishing off GitHub onto the self-hosted Forgejo runner and the iterative-works Forgejo Maven registry.

  • build.mill — add the forge Maven registry to BaseModuleCommon.repositories so every module can resolve the first-party scalatags-datastar SNAPSHOTs. They live only in the forge registry (Central hosts releases, not snapshots), and forms-scenarios needs them transitively via forms-datastar. Reads are anonymous (public org), no credentials. Drops the now-redundant per-module override.
  • ci.yml — drop the GitHub Packages COURSIER_CREDENTIALS (deps resolve from the forge registry now); add a Node runtime to the test job for the forms-scenarios ScalaJS link.
  • publish.yml — publish SNAPSHOTs/releases to the forge Maven registry via MavenPublishModule (MILL_MAVEN_* org secrets) instead of GitHub Packages; keep the e-BS Nexus release step for tags.

Verification so far

Resolved formsDatastar and the transitive consumer formsScenarios.jvm with a clean coursier cache and the datastar snapshots removed from ~/.ivy2/local (fresh-container equivalent): both rc=0, scalatags-datastar fetched from the forge registry.

Requires before merge

  • MILL_MAVEN_USERNAME / MILL_MAVEN_PASSWORD — already org secrets.
  • EBS_NEXUS_USERNAME / EBS_NEXUS_PASSWORD — must be provisioned as forge org/repo secrets for the tagged-release e-BS Nexus step (they currently live only as GitHub repo secrets). Not needed for snapshot CI.

Follow-up (after green + merge)

  • Cut over the local origin → forge across the iw-support worktrees.
  • Retire the GitHub Actions workflows on the mirror so they don't run without secrets.

🤖 Generated with Claude Code

## What Move iw-support's CI and publishing off GitHub onto the self-hosted **Forgejo runner** and the **iterative-works Forgejo Maven registry**. - **build.mill** — add the forge Maven registry to `BaseModuleCommon.repositories` so every module can resolve the first-party `scalatags-datastar` SNAPSHOTs. They live only in the forge registry (Central hosts releases, not snapshots), and `forms-scenarios` needs them transitively via `forms-datastar`. Reads are anonymous (public org), no credentials. Drops the now-redundant per-module override. - **ci.yml** — drop the GitHub Packages `COURSIER_CREDENTIALS` (deps resolve from the forge registry now); add a Node runtime to the test job for the `forms-scenarios` ScalaJS link. - **publish.yml** — publish SNAPSHOTs/releases to the forge Maven registry via `MavenPublishModule` (`MILL_MAVEN_*` org secrets) instead of GitHub Packages; **keep** the e-BS Nexus release step for tags. ## Verification so far Resolved `formsDatastar` and the transitive consumer `formsScenarios.jvm` with a **clean coursier cache** and the datastar snapshots **removed from `~/.ivy2/local`** (fresh-container equivalent): both `rc=0`, scalatags-datastar fetched from the forge registry. ## Requires before merge - **`MILL_MAVEN_USERNAME` / `MILL_MAVEN_PASSWORD`** — already org secrets. ✅ - **`EBS_NEXUS_USERNAME` / `EBS_NEXUS_PASSWORD`** — must be provisioned as forge org/repo secrets for the tagged-release e-BS Nexus step (they currently live only as GitHub repo secrets). Not needed for snapshot CI. ## Follow-up (after green + merge) - Cut over the local `origin` → forge across the iw-support worktrees. - Retire the GitHub Actions workflows on the mirror so they don't run without secrets. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ci: build and publish on the forge (Forgejo runner + Maven registry)
All checks were successful
CI / Check Formatting (pull_request) Successful in 1m20s
CI / Compile (pull_request) Successful in 2m42s
CI / Check Linting (pull_request) Successful in 2m8s
CI / Run Tests (pull_request) Successful in 2m13s
2726a172c8
Move CI and publishing off GitHub to the self-hosted Forgejo runner and the
iterative-works Forgejo Maven registry:

- build.mill: add the forge Maven registry to BaseModuleCommon.repositories so
  every module (not just forms-datastar) can resolve the first-party
  scalatags-datastar SNAPSHOTs — they live only in the forge registry (Central
  hosts releases, not snapshots), and forms-scenarios needs them transitively.
  Reads are anonymous (public org), so no credentials. Drops the now-redundant
  per-module override on forms-datastar.
- ci.yml: drop the GitHub Packages COURSIER_CREDENTIALS (deps resolve from the
  forge registry now); add a Node runtime to the test job for the forms-scenarios
  ScalaJS link.
- publish.yml: publish SNAPSHOTs/releases to the forge Maven registry via
  MavenPublishModule (MILL_MAVEN_* org secrets) instead of GitHub Packages;
  keep the e-BS Nexus release step for tags (EBS_NEXUS_* forge secrets).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mph merged commit 2da1fd046a into main 2026-07-13 09:43:31 +00:00
mph deleted branch forge-maven-registry 2026-07-13 09:43:31 +00:00
mph referenced this pull request from a commit 2026-07-13 10:21:58 +00:00
Sign in to join this conversation.
No description provided.