Skip to content

Commit 476b20f

Browse files
committed
new run engine will default to node 22 runtime
1 parent d3a3951 commit 476b20f

File tree

4 files changed

+29
-6
lines changed

4 files changed

+29
-6
lines changed

packages/cli-v3/src/commands/deploy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,10 @@ async function _deployCommand(dir: string, options: DeployCommandOptions) {
211211

212212
const forcedExternals = await resolveAlwaysExternal(projectClient.client);
213213

214-
const isRunEngineV2 = resolvedConfig.compatibilityFlags.includes("run_engine_v2");
214+
const { features } = resolvedConfig;
215215

216216
const buildManifest = await buildWorker({
217-
target: isRunEngineV2 ? "managed" : "deploy",
217+
target: features.run_engine_v2 ? "managed" : "deploy",
218218
environment: options.env,
219219
destination: destination.path,
220220
resolvedConfig,
@@ -246,7 +246,7 @@ async function _deployCommand(dir: string, options: DeployCommandOptions) {
246246
selfHosted: options.selfHosted,
247247
registryHost: options.registry,
248248
namespace: options.namespace,
249-
type: isRunEngineV2 ? "MANAGED" : "V1",
249+
type: features.run_engine_v2 ? "MANAGED" : "V1",
250250
});
251251

252252
if (!deploymentResponse.success) {

packages/cli-v3/src/config.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
import { ResolveEnvironmentVariablesFunction, TriggerConfig } from "@trigger.dev/core/v3";
1+
import {
2+
BuildRuntime,
3+
CompatibilityFlag,
4+
CompatibilityFlagFeatures,
5+
ResolveEnvironmentVariablesFunction,
6+
TriggerConfig,
7+
} from "@trigger.dev/core/v3";
28
import { DEFAULT_RUNTIME, ResolvedConfig } from "@trigger.dev/core/v3/build";
39
import * as c12 from "c12";
410
import { defu } from "defu";
@@ -131,6 +137,12 @@ export function configPlugin(resolvedConfig: ResolvedConfig): esbuild.Plugin | u
131137
};
132138
}
133139

140+
function featuresFromCompatibilityFlags(flags: CompatibilityFlag[]): CompatibilityFlagFeatures {
141+
return {
142+
run_engine_v2: flags.includes("run_engine_v2"),
143+
};
144+
}
145+
134146
async function resolveConfig(
135147
cwd: string,
136148
result: c12.ResolvedConfig<TriggerConfig>,
@@ -157,6 +169,10 @@ async function resolveConfig(
157169

158170
dirs = dirs.map((dir) => (isAbsolute(dir) ? relative(workingDir, dir) : dir));
159171

172+
const features = featuresFromCompatibilityFlags(config.compatibilityFlags ?? []);
173+
174+
const defaultRuntime: BuildRuntime = features.run_engine_v2 ? "node-22" : DEFAULT_RUNTIME;
175+
160176
const mergedConfig = defu(
161177
{
162178
workingDir: packageJsonPath ? dirname(packageJsonPath) : cwd,
@@ -170,7 +186,7 @@ async function resolveConfig(
170186
config,
171187
{
172188
dirs,
173-
runtime: DEFAULT_RUNTIME,
189+
runtime: defaultRuntime,
174190
tsconfig: tsconfigPath,
175191
build: {
176192
jsx: {
@@ -183,13 +199,15 @@ async function resolveConfig(
183199
conditions: [],
184200
},
185201
compatibilityFlags: [],
202+
features,
186203
}
187204
) as ResolvedConfig; // TODO: For some reason, without this, there is a weird type error complaining about tsconfigPath being string | nullish, which can't be assigned to string | undefined
188205

189206
return {
190207
...mergedConfig,
191208
dirs: Array.from(new Set(mergedConfig.dirs)),
192209
instrumentedPackageNames: getInstrumentedPackageNames(mergedConfig),
210+
runtime: mergedConfig.runtime,
193211
};
194212
}
195213

packages/core/src/v3/build/resolvedConfig.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { type Defu } from "defu";
22
import type { Prettify } from "ts-essentials";
3-
import { CompatibilityFlag, TriggerConfig } from "../config.js";
3+
import { CompatibilityFlag, CompatibilityFlagFeatures, TriggerConfig } from "../config.js";
44
import { BuildRuntime } from "../schemas/build.js";
55
import { ResolveEnvironmentVariablesFunction } from "../types/index.js";
66

@@ -17,6 +17,7 @@ export type ResolvedConfig = Prettify<
1717
jsx: { factory: string; fragment: string; automatic: true };
1818
} & Omit<NonNullable<TriggerConfig["build"]>, "jsx">;
1919
compatibilityFlags: CompatibilityFlag[];
20+
features: CompatibilityFlagFeatures;
2021
},
2122
]
2223
> & {

packages/core/src/v3/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import type { BuildRuntime, RetryOptions } from "./index.js";
1212

1313
export type CompatibilityFlag = "run_engine_v2";
1414

15+
export type CompatibilityFlagFeatures = {
16+
[key in CompatibilityFlag]: boolean;
17+
};
18+
1519
export type TriggerConfig = {
1620
/**
1721
* @default "node"

0 commit comments

Comments
 (0)