Problem
The reusable release.yml@v1 chocolatey job hardcodes repo-root-relative packaging paths, so it cannot find a monorepo tool's tools/<tool>/packaging/chocolatey:
Update version and checksums step reads packaging/chocolatey/$CHOCO_ID.nuspec and packaging/chocolatey/tools/chocolateyInstall.ps1.
Pack and push step does cd packaging/chocolatey.
Neither honors inputs.working-directory. Flat repos (working-dir .) are unaffected — which is why slck/nrq/codereview migrated fine. This is the second monorepo gap surfaced during the #397 survey (the first was identity-check, #14/#15).
For comparison, the sibling channel jobs are already monorepo-correct:
- winget uses
wingetcreate update against the published manifest (no local path dependency).
- homebrew / linux / goreleaser / auto-release read version/config relative to working-directory (or run goreleaser from root by design).
So chocolatey is the only remaining channel that breaks under the monorepo layout.
Fix
Add working-directory: ${{ inputs.working-directory }} to each chocolatey run step that references a packaging/chocolatey path (the two steps above). Do not use a job-level defaults.run.working-directory: ${{ inputs.* }} — GHA defaults is not a safe place for expressions. The Get checksums from release step downloads checksums.txt to . and is path-agnostic, so it needs no change.
Backward-compatible: flat repos pass working-directory ., so paths resolve identically to today.
Scope
.github/workflows/release.yml — working-directory: on the two chocolatey packaging steps.
test-actions.yml — exercise the path resolution if feasible (the choco job is Windows + secret-gated; a fixture/lint-level check may be the most that's testable here).
- Cut
v1.1.1 and re-point the moving @v1 tag (backward-compatible).
Blocks
Surfaced during the #397 survey; sibling to #14/#15.
Problem
The reusable
release.yml@v1chocolatey job hardcodes repo-root-relative packaging paths, so it cannot find a monorepo tool'stools/<tool>/packaging/chocolatey:Update version and checksumsstep readspackaging/chocolatey/$CHOCO_ID.nuspecandpackaging/chocolatey/tools/chocolateyInstall.ps1.Pack and pushstep doescd packaging/chocolatey.Neither honors
inputs.working-directory. Flat repos (working-dir.) are unaffected — which is why slck/nrq/codereview migrated fine. This is the second monorepo gap surfaced during the #397 survey (the first was identity-check, #14/#15).For comparison, the sibling channel jobs are already monorepo-correct:
wingetcreate updateagainst the published manifest (no local path dependency).So chocolatey is the only remaining channel that breaks under the monorepo layout.
Fix
Add
working-directory: ${{ inputs.working-directory }}to each chocolateyrunstep that references apackaging/chocolateypath (the two steps above). Do not use a job-leveldefaults.run.working-directory: ${{ inputs.* }}— GHAdefaultsis not a safe place for expressions. TheGet checksums from releasestep downloadschecksums.txtto.and is path-agnostic, so it needs no change.Backward-compatible: flat repos pass working-directory
., so paths resolve identically to today.Scope
.github/workflows/release.yml—working-directory:on the two chocolatey packaging steps.test-actions.yml— exercise the path resolution if feasible (the choco job is Windows + secret-gated; a fixture/lint-level check may be the most that's testable here).v1.1.1and re-point the moving@v1tag (backward-compatible).Blocks
@v1includes this fix).Surfaced during the #397 survey; sibling to #14/#15.