Skip to content

fix(docker): copy all workspace package.json manifests in Dockerfile.dev#43

Merged
Anmol1696 merged 1 commit into
mainfrom
feat/fix-ci-main
May 12, 2026
Merged

fix(docker): copy all workspace package.json manifests in Dockerfile.dev#43
Anmol1696 merged 1 commit into
mainfrom
feat/fix-ci-main

Conversation

@Anmol1696
Copy link
Copy Markdown
Contributor

Summary

  • Dockerfile.dev only copied fn-app and fn-runtime package.json manifests before pnpm install --frozen-lockfile. After PR feat(packages): extract fn-types; make fn-runtime/fn-app publishable (Wave 1 of portable-functions toolkit) #41 added fn-types, fn-generator, fn-client, and fn-cli to packages/, those four workspaces were absent at install time, so pnpm never created their node_modules/@constructive-io/* symlinks.
  • The later pnpm build step then failed inside the Docker image with TS2307: Cannot find module '@constructive-io/fn-types' when fn-generator compiled, breaking the CI Test K8s workflow on main (see run 25620376079).
  • Fix: add the four missing COPY packages/<pkg>/package.json lines so all workspace manifests are present before install.

Why the other CI workflows stayed green

CI and Tests run pnpm install against the full source tree (every workspace package is visible from the start), so they never hit this code path. Only CI Test K8s builds Dockerfile.dev via Skaffold.

Test plan

  • docker build -f Dockerfile.dev -t constructive-functions:fix-ci-test . succeeds locally (previously failed identically to CI).
  • Confirmed inside the built image that packages/fn-generator/node_modules/@constructive-io/fn-types resolves to the workspace package and packages/fn-types/dist/ is populated.
  • CI Test K8s passes for all three matrix legs (simple-email, send-email-link, python-example).

…stall

Dockerfile.dev only copied fn-app and fn-runtime package.json before
`pnpm install --frozen-lockfile`. After PR #41 added fn-types,
fn-generator, fn-client, and fn-cli to packages/, those four workspaces
were absent at install time, so pnpm never created their
node_modules/@constructive-io symlinks. The later `pnpm build` then
failed inside the Docker image with TS2307 when fn-generator tried to
resolve `@constructive-io/fn-types`, breaking the CI Test K8s workflow
on main.

Verified locally: `docker build -f Dockerfile.dev .` now completes end
to end and packages/fn-generator/node_modules/@constructive-io/fn-types
resolves to the workspace package.
Copilot AI review requested due to automatic review settings May 12, 2026 05:13
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Dockerfile.dev to ensure all PNPM workspace package manifests are present during the image layer that runs pnpm install --frozen-lockfile, preventing missing workspace symlinks (and subsequent TypeScript module resolution failures) in the Docker/Skaffold path used by CI Test K8s.

Changes:

  • Add COPY packages/<pkg>/package.json lines for fn-types, fn-generator, fn-client, and fn-cli before the install layer.
  • Ensures PNPM can correctly recognize/link all workspaces during the cached install step in Dockerfile.dev.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Anmol1696 Anmol1696 merged commit 8926ff3 into main May 12, 2026
16 checks 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.

2 participants