005f7bef04 fix(build): respect configured deploy input filters (#562)
* Respect configured deploy inputs for config steps

When a config-defined step already has an explicit deploy input, Railpack should not append the implicit deploy output for the entire step. This preserves include filters such as Next.js standalone output selections and avoids copying the full build step into the final image.

Constraint: Config steps without explicit deploy inputs still need the existing implicit deploy output behavior.

Rejected: Change deploy input filter semantics globally | too broad for this bug and risks provider output behavior.

Confidence: medium

Scope-risk: moderate

Tested: go test ./core/generate -run 'TestHasInputForStep|TestGenerateContextKeepsConfiguredDeployInputFilters'

Tested: go test ./core/generate -run TestHasIncludeForStep

Tested: go test ./core/generate

Tested: git diff --check

* fix(generate): respect explicitly configured deploy inputs without implicit steps

- Prevent implicit deploy step outputs from being added when explicit deploy inputs are configured without a spread operator.
- Add comprehensive test coverage for various deploy input and output combinations.

Generated-by: aiautocommit

* feat(examples): respect configured deploy inputs

- Add `/usr/games` to runtime paths to support Debian's cowsay installation location in the config example.
- Assert that unrelated files do not leak through implicit deploy outputs.

Generated-by: aiautocommit

* refactor(generate): check configured deploy inputs for step

Generated-by: aiautocommit

---------

Co-authored-by: Michael Bianco <[email protected]>
2026-07-31 08:17:46 -06:00
2026-07-31 06:25:52 -06:00
2026-07-31 06:25:52 -06:00
2025-02-10 13:26:33 -07:00
2026-03-13 08:47:35 -06:00

Railpack

CI Run Tests

Railpack is a tool for building images from source code with minimal configuration. It is the successor to Nixpacks and incorporates many of the learnings from running Nixpacks in production at Railway for several years.

Getting Started

# Install mise & railpack
curl -sSL https://mise.run | sh
mise install github:railwayapp/railpack@latest

# start BuildKit container & let railpack know about it
docker run --rm --privileged -d --name buildkit moby/buildkit
export BUILDKIT_HOST='docker-container://buildkit'

# create a Next.js app
npm create next-app@latest my-app
cd my-app

# build and run the app!
railpack build .
docker run -p 3000:3000 -it my-app

Railpack automatically detects the project type (Next.js, in this case, but many languages & frameworks are supported!) and generates an optimized container image.

Note: The above steps are for running Railpack locally to experiment and test. If you deploy on Railway, Railpack runs automatically when you push changes to your repository.

Documentation

Full documentation for both operators (platforms, like Railway) and users (developers using Railpack to build their applications) is available at railpack.com.

Contributing

Railpack is open source and open to contributions. See the CONTRIBUTING.md file for more information.

S
Description
Zero-config BuildKit gateway frontend for the Hanzo build fabric
Readme MIT
24 MiB
Languages
Go 90.8%
Shell 6.5%
Python 1.4%
Dockerfile 0.7%
TypeScript 0.6%