Skip to content

ci: per-mod matrix release, build against real game DLLs#2

Merged
cryptiklemur merged 1 commit into
mainfrom
ci/per-mod-matrix
Jun 20, 2026
Merged

ci: per-mod matrix release, build against real game DLLs#2
cryptiklemur merged 1 commit into
mainfrom
ci/per-mod-matrix

Conversation

@cryptiklemur

Copy link
Copy Markdown
Contributor

Reworks the release pipeline to a per-mod matrix (Framework + Redesign), mirroring the Cosmere ui-remaster pattern.

What changed

  • get-mods job discovers mod dirs (any with About/About.xml) -> ["Framework","Redesign"].
  • prepare runs as a matrix over mods: per-mod assembly verify ($MOD/Assemblies/*.dll), per-mod zip (cd $MOD; zip -r), per-mod artifact.
  • Asset bundles archived + extracted per mod (only Framework has assets; Redesign no-ops cleanly).
  • Stage the real RimWorld assemblies from the private game image in both prepare and semantic-release, so dotnet pack compiles against the shipped DLLs. This matches the protected overrides; Krafs.Rimworld.Ref publicizes those members to public and would reintroduce CS0507 in the pack step.
  • release.config.mjs: fixed stale BuildInfo.cs path (Lightweave/Runtime/ -> Framework/Source/Runtime/) and declared both mods to semantic-release-steam.
  • PublishedFileIds.json: per-mod keys (Framework/Redesign), both empty -> no Workshop publish (unchanged behavior).

Notes

  • No Steam Workshop publish is configured (empty published ids), so a release does GitHub release + nuget only.
  • Merging to main lets the pipeline go green; the pre-existing fix: (protected overrides) then drives the 1.0.2 patch release.
  • Only CI/config files touched; in-flight mod-source WIP is untouched.

Rework the release pipeline to a per-mod matrix so each mod (Framework,
Redesign) is built, verified, and packaged independently:

- get-mods job discovers mod dirs (those with About/About.xml)
- prepare runs as a matrix over mods; per-mod assembly verify + per-mod zip
- asset bundles archived and extracted per mod
- stage the real RimWorld assemblies from the private game image in both
  prepare and semantic-release so dotnet pack compiles against the shipped
  DLLs (matches the protected overrides; Krafs.Rimworld.Ref publicizes and
  would reintroduce CS0507 there)
- release.config.mjs: fix stale BuildInfo.cs path, declare both mods to
  semantic-release-steam
- PublishedFileIds.json: per-mod keys (empty, so Workshop publish stays off)
@cryptiklemur cryptiklemur merged commit 4e4afa2 into main Jun 20, 2026
cryptiklemur added a commit that referenced this pull request Jun 20, 2026
ci: per-mod matrix release, build against real game DLLs
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