feat(application): add railpackVersion field to application schema and update related components

- Introduced a new column `railpackVersion` in the application table with a default value of '0.2.2'.
- Updated the application form to include a field for `railpackVersion` when the build type is set to railpack.
- Adjusted the build process to utilize the specified `railpackVersion` dynamically.
- Enhanced validation schema to accommodate the new field.
This commit is contained in:
Mauricio Siu
2025-08-03 01:54:07 -06:00
parent b8f27d7b76
commit cc6445a8ec
6 changed files with 6186 additions and 8 deletions

View File

@@ -208,6 +208,7 @@ export const applications = pgTable("application", {
.notNull()
.default("idle"),
buildType: buildType("buildType").notNull().default("nixpacks"),
railpackVersion: text("railpackVersion").default("0.2.2"),
herokuVersion: text("herokuVersion").default("24"),
publishDirectory: text("publishDirectory"),
isStaticSpa: boolean("isStaticSpa"),
@@ -412,6 +413,7 @@ const createSchema = createInsertSchema(applications, {
"static",
"railpack",
]),
railpackVersion: z.string().optional(),
herokuVersion: z.string().optional(),
publishDirectory: z.string().optional(),
isStaticSpa: z.boolean().optional(),
@@ -466,6 +468,7 @@ export const apiSaveBuildType = createSchema
dockerContextPath: true,
dockerBuildStage: true,
herokuVersion: true,
railpackVersion: true,
})
.required()
.merge(createSchema.pick({ publishDirectory: true, isStaticSpa: true }));

View File

@@ -75,7 +75,7 @@ export const buildRailpack = async (
]
: []),
"--build-arg",
"BUILDKIT_SYNTAX=ghcr.io/railwayapp/railpack-frontend:v0.2.2",
`BUILDKIT_SYNTAX=ghcr.io/railwayapp/railpack-frontend:v${application.railpackVersion}`,
"-f",
`${buildAppDirectory}/railpack-plan.json`,
"--output",
@@ -155,7 +155,7 @@ export const getRailpackCommand = (
]
: []),
"--build-arg",
"BUILDKIT_SYNTAX=ghcr.io/railwayapp/railpack-frontend:v0.0.64",
`BUILDKIT_SYNTAX=ghcr.io/railwayapp/railpack-frontend:v${application.railpackVersion}`,
"-f",
`${buildAppDirectory}/railpack-plan.json`,
"--output",