Skip to content

release.yml: resolve chocolatey packaging paths working-directory-relative for monorepo consumers #16

Description

@rianjs

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.ymlworking-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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions