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/golang/golang_test.go

core/providers/golang/golang_test.goBrowse 1970 files
View on GitHub
← Back to SKILL.md
package golang import (	"testing" 	testingUtils "github.com/railwayapp/railpack/core/testing"	"github.com/stretchr/testify/require") func TestGolang(t *testing.T) {	tests := []struct {		name         string		path         string		detected     bool		hasGoMod     bool		hasWorkspace bool		goVersion    string		cgoEnabled   bool	}{		{			name:      "go mod",			path:      "../../../examples/go-mod",			detected:  true,			hasGoMod:  true,			goVersion: "1.25.3",		},		{			name:      "go cmd dirs",			path:      "../../../examples/go-cmd-dirs",			detected:  true,			hasGoMod:  true,			goVersion: "1.25.3",		},		{			name:         "go workspaces",			path:         "../../../examples/go-workspaces",			detected:     true,			hasGoMod:     false,			hasWorkspace: true,			goVersion:    "1.25",		},		{			name:     "node",			path:     "../../../examples/node-npm",			detected: false,		},	} 	for _, tt := range tests {		t.Run(tt.name, func(t *testing.T) {			ctx := testingUtils.CreateGenerateContext(t, tt.path)			provider := GoProvider{}			detected, err := provider.Detect(ctx)			require.NoError(t, err)			require.Equal(t, tt.detected, detected) 			if detected {				err = provider.Initialize(ctx)				require.NoError(t, err) 				err = provider.Plan(ctx)				require.NoError(t, err) 				require.Equal(t, tt.hasGoMod, provider.isGoMod(ctx))				require.Equal(t, tt.hasWorkspace, provider.isGoWorkspace(ctx))				require.Equal(t, tt.cgoEnabled, provider.hasCGOEnabled(ctx)) 				if tt.goVersion != "" {					goVersion := ctx.Resolver.Get("go")					require.Equal(t, tt.goVersion, goVersion.Version)				} 				if tt.hasWorkspace {					packages := provider.GoWorkspacePackages(ctx)					require.Greater(t, len(packages), 0, "workspace should have at least one package")				}			}		})	}}