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 ↗

core/providers/gleam/gleam.go

core/providers/gleam/gleam.goBrowse 1970 files
View on GitHub
← Back to SKILL.md
package gleam import (	"github.com/railwayapp/railpack/core/generate"	"github.com/railwayapp/railpack/core/plan") type GleamProvider struct{} func (p *GleamProvider) Name() string {	return "gleam"} func (p *GleamProvider) Detect(ctx *generate.GenerateContext) (bool, error) {	return ctx.App.HasFile("gleam.toml"), nil} func (p *GleamProvider) Initialize(ctx *generate.GenerateContext) error {	return nil} func (p *GleamProvider) CleansePlan(buildPlan *plan.BuildPlan) {} func (p *GleamProvider) StartCommandHelp() string {	return ""} func (p *GleamProvider) Plan(ctx *generate.GenerateContext) error {	build := ctx.NewCommandStep("build")	build.AddInput(plan.NewStepLayer(ctx.GetMiseStepBuilder().Name()))	build.AddInput(plan.NewLocalLayer())	build.AddCommand(plan.NewExecCommand("gleam export erlang-shipment")) 	p.installErlang(ctx.GetMiseStepBuilder())	ctx.GetMiseStepBuilder().Default("gleam", "latest")	ctx.GetMiseStepBuilder().UseMiseVersions(ctx, []string{"gleam", "erlang"}) 	runtimeMiseStep := ctx.NewMiseStepBuilder("packages:mise:runtime")	p.installErlang(runtimeMiseStep)	runtimeMiseStep.UseMiseVersions(ctx, []string{"erlang"}) 	outPath := "build/erlang-shipment/." 	includedPath := outPath	if ctx.Env.IsConfigVariableTruthy("GLEAM_INCLUDE_SOURCE") {		includedPath = "."	} 	ctx.Deploy.AddInputs([]plan.Layer{		runtimeMiseStep.GetLayer(),		plan.NewStepLayer(build.Name(), plan.Filter{			Include: []string{includedPath},		}),	}) 	ctx.Deploy.StartCmd = "./build/erlang-shipment/entrypoint.sh run" 	return nil} func (p *GleamProvider) installErlang(step *generate.MiseStepBuilder) {	step.Default("erlang", "latest")}