Skip to content

CI: move to setup-nim-action@v6 (Nimby 0.2.0) - #35

Merged
treeform merged 1 commit into
masterfrom
ci/nimby-v6-workspace
Aug 23, 2026
Merged

treeform merged 1 commit into
masterfrom
ci/nimby-v6-workspace

Conversation

@treeform

Copy link
Copy Markdown
Owner

Moves CI to treeform/setup-nim-action@v6, which ships Nim 2.2.10 with Nimby 0.2.0 bundled.

Not just a tag bump — Nimby 0.2.0 made workspaces explicit, which breaks the old command.

What was breaking

nimby install -g shady.nimble in the checkout root now fails outright under 0.2.0:

Can't add package 'shady' to config.
Nimble file not found for package 'shady'

and the build then fails with Error: cannot open file: pixie. Verified against the real v6 toolchain.

The workspace is now created in the checkout's parent, so shady sits inside it next to its dependencies and nim finds nim.cfg by walking up. That placement is load-bearing: a workspace under RUNNER_TEMP installs the packages but the build won't see them.

docs.yml

Migrated off jiro4989/setup-nim-action@v1 + nimble onto the same Nimby workspace and nim doc, so both workflows use one toolchain. Dropped the unused nim-version: 'stable' env (v6 requires an exact version and this was never passed to the action).

Verification

Every run: step was parsed from these YAML files and executed against the bit-identical v6 artifact (SHA-256 matched the release asset), in a sandbox with USERPROFILE redirected:

  • build.yml — workspace + install + nim r tests/test_shady.nim actually runs and passes
  • docs.yml — full run, produces the expected .gh-pages tree with index.html

Note this only changes shady's own CI. Downstream repos consume shady as a git clone at HEAD, so they are unaffected.

Local runs were Windows-only; this PR's CI covers the ubuntu matrix.

🤖 Generated with Claude Code

Nimby 0.2.0 makes workspaces explicit and refuses to create one inside a
Git checkout, so installing in the checkout root no longer works. Create
the workspace in the checkout's parent instead, so shady sits inside it
next to its dependencies and nim finds nim.cfg by walking up.

Also drop -g. Under 0.2.0 a global install writes no nim.cfg at all, so
packages land on disk but stay invisible to the compiler: the install
step goes green and the build then fails with "cannot open file".

docs.yml moves off jiro4989/setup-nim-action + nimble onto the same
Nimby workspace and nim doc, matching build.yml.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@treeform
treeform merged commit 58ddf95 into master Aug 23, 2026
1 check passed
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