railpack

Configure and troubleshoot Railpack builds, with emphasis on RAILPACK_* environment variables, railpack.json overlays, build-plan inspection, local CLI installation and usage, and local BuildKit containers. Use for Railpack provider configuration, custom install/build/start commands, Mise or Apt packages, build or runtime variables and secrets, generated-plan debugging, BUILDKIT_HOST errors, or running Railpack from a release or source checkout.

Install
npx skills add 'https://github.com/railwayapp/railpack/tree/main/.'
Incomplete bundle · no download
main · 21a254fScanned 2026-09-17

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

.github/workflows/release.yml

.github/workflows/release.ymlBrowse 1970 files
View on GitHub
← Back to SKILL.md
# checkout RELEASE.md for more informationname: Release on:  push:    # pushing a new tag is what triggers the release process    tags:      - "v*" permissions:  contents: write  packages: write env:  MISE_ENV: ci jobs:  publish-builder:    runs-on: ubuntu-latest    steps:      # duplicated on the integration-tests.yml job, keep these in sync      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd      - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151      - uses: docker/setup-docker-action@77e84dbf09b47d1e29270283c22f16145aa85ca1        with:          version: ${{ env.DOCKER_VERSION }}      - uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3      - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5      - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee        with:          registry: ${{ env.PRODUCTION_CONTAINER_REGISTRY }}          username: ${{ github.actor }}          password: ${{ secrets.GITHUB_TOKEN }}       - name: Generate Tags & Metadata        id: meta        uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9        with:          images: ${{ env.PRODUCTION_BUILDER_IMAGE_NAME }}          # latest tag is automatically generated          tags: |            type=raw,value=debian-trixie            type=semver,pattern={{version}}            type=raw,value=${{ env.PRODUCTION_MISE_TAG }}            type=sha,format=long            type=raw,value={{date 'YYYYMMDD'}}       - name: Build and push Docker image        uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf        with:          context: images/debian/build          platforms: linux/amd64,linux/arm64          push: true          tags: ${{ steps.meta.outputs.tags }}          labels: ${{ steps.meta.outputs.labels }}          build-args: |            MISE_VERSION=${{ env.RAILPACK_MISE_VERSION }}   publish-runtime:    runs-on: ubuntu-latest    env:      IMAGE_NAME: ${{ github.repository }}-runtime    steps:      # duplicated on the integration-tests.yml job, keep these in sync      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd      - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151      - uses: docker/setup-docker-action@77e84dbf09b47d1e29270283c22f16145aa85ca1        with:          version: ${{ env.DOCKER_VERSION }}      - uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3      - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5      - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee        with:          registry: ${{ env.PRODUCTION_CONTAINER_REGISTRY }}          username: ${{ github.actor }}          password: ${{ secrets.GITHUB_TOKEN }}       - name: Generate Tags & Metadata        id: meta        uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9        with:          # the mise version is NOT required for the runtime image, but it is helpful to have them tagged using the same exact version          # this makes it easy to ensure we (a) pin the runtime and build images to the same external build image and (b) allows us to build          # these images *before* the railpack binary build step to ensure they are properly created (railpack relies on them existing, so we want          # a successful builder + runtime image build before building and releasing a new railpack frontend).          images: ${{ env.PRODUCTION_RUNTIME_IMAGE_NAME }}          # latest tag is automatically generated          tags: |            type=raw,value=debian-trixie            type=semver,pattern={{version}}            type=raw,value=${{ env.PRODUCTION_MISE_TAG }}            type=sha,format=long            type=raw,value={{date 'YYYYMMDD'}}       - name: Build and push Docker image        uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf        with:          context: images/debian/runtime          platforms: linux/amd64,linux/arm64          push: true          tags: ${{ steps.meta.outputs.tags }}          labels: ${{ steps.meta.outputs.labels }}   release:    runs-on: ubuntu-latest    needs: [publish-builder, publish-runtime]    steps:      - name: Checkout        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd        with:          fetch-depth: 0      - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151      - uses: docker/setup-docker-action@77e84dbf09b47d1e29270283c22f16145aa85ca1        with:          version: ${{ env.DOCKER_VERSION }}      - uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3      - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5      - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee        with:          registry: ${{ env.PRODUCTION_CONTAINER_REGISTRY }}          username: ${{ github.actor }}          password: ${{ secrets.GITHUB_TOKEN }}                - name: Release Updated Railpack CLI and Frontend Images        id: goreleaser        uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89        with:          distribution: goreleaser          version: "~> v2"          args: release --clean        env:          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}