Files
team/.dockerignore
zeekayandHanzo Dev 763a9d7967 Keep a built working tree out of the build context
npm ci runs the root postinstall, which builds all four platform workspaces, and
the context was sending them a copy of their own output. A .rollup.cache from
the host reaches rollup-plugin-ts and it hands rollup untouched TSX —

  src/index.tsx (5:7) Unexpected token
  (Note that you need plugins to import files that are not JavaScript)

— and tsbuildinfo tells tsc a project is up to date over sources the image has
never compiled. Only a tree that was built in before the image was carries them,
so CI never sees this and a developer sees it every time.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-08 12:46:32 -07:00

29 lines
1.1 KiB
Plaintext

# The build context is the source and nothing else.
#
# .git alone is 1.2 GiB here, and every byte of it is uploaded to the builder
# before the first instruction runs.
.git
# Build output and installed dependencies are REPRODUCED by the build. Sending a
# working tree's copies makes the image depend on the machine that built it —
# and `npm ci` and `go build` would then be layering onto someone else's results.
#
# The platform workspaces are the half this used to miss, and it does not fail
# quietly. `npm ci` runs the root postinstall, which builds all four of them, so
# a stale .rollup.cache reaches rollup-plugin-ts and it hands rollup untouched
# TSX:
#
# src/index.tsx (5:7) Unexpected token
# (Note that you need plugins to import files that are not JavaScript)
#
# tsbuildinfo does the same to tsc more politely — "Project is up to date" over
# sources the image has never compiled. Both only happen when the tree was built
# in before the image was, so CI never sees either and a developer sees both.
**/node_modules
webapp/channels/dist
webapp/platform/*/dist
webapp/platform/*/lib
webapp/**/.rollup.cache
webapp/.parcel-cache
webapp/**/*.tsbuildinfo