-
-
Notifications
You must be signed in to change notification settings - Fork 684
/
Copy pathtrigger.config.ts
95 lines (90 loc) · 2.89 KB
/
trigger.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import { InfisicalClient } from "@infisical/sdk";
import { sentryEsbuildPlugin } from "@sentry/esbuild-plugin";
import { OpenAIInstrumentation } from "@traceloop/instrumentation-openai";
import { esbuildPlugin } from "@trigger.dev/build";
import { audioWaveform } from "@trigger.dev/build/extensions/audioWaveform";
import { ffmpeg, syncEnvVars } from "@trigger.dev/build/extensions/core";
import { puppeteer } from "@trigger.dev/build/extensions/puppeteer";
import { playwright } from "@trigger.dev/build/extensions/playwright";
import { prismaExtension } from "@trigger.dev/build/extensions/prisma";
import { emitDecoratorMetadata } from "@trigger.dev/build/extensions/typescript";
import { defineConfig } from "@trigger.dev/sdk/v3";
export { handleError } from "./src/handleError.js";
export default defineConfig({
runtime: "node",
project: "yubjwjsfkxnylobaqvqz",
machine: "medium-1x",
instrumentations: [new OpenAIInstrumentation()],
additionalFiles: ["wrangler/wrangler.toml"],
maxDuration: 3600,
dirs: ["./src/trigger"],
retries: {
enabledInDev: false,
default: {
maxAttempts: 10,
minTimeoutInMs: 5_000,
maxTimeoutInMs: 30_000,
factor: 2,
randomize: true,
},
},
enableConsoleLogging: false,
logLevel: "info",
onStart: async (payload, { ctx }) => {
console.log(`Task ${ctx.task.id} started ${ctx.run.id}`);
},
onFailure: async (payload, error, { ctx }) => {
console.log(
`Task ${ctx.task.id} failed ${ctx.run.id}: ${
error instanceof Error ? error.message : String(error)
}`
);
},
build: {
conditions: ["react-server"],
extensions: [
ffmpeg(),
emitDecoratorMetadata(),
audioWaveform(),
prismaExtension({
schema: "prisma/schema/schema.prisma",
migrate: true,
directUrlEnvVarName: "DATABASE_URL_UNPOOLED",
clientGenerator: "client",
typedSql: true,
}),
esbuildPlugin(
sentryEsbuildPlugin({
org: "triggerdev",
project: "taskhero-examples-basic",
authToken: process.env.SENTRY_AUTH_TOKEN,
}),
{ placement: "last", target: "deploy" }
),
syncEnvVars(async (ctx) => {
if (
!process.env.INFISICAL_CLIENT_ID ||
!process.env.INFISICAL_CLIENT_SECRET ||
!process.env.INFISICAL_PROJECT_ID
) {
return;
}
const client = new InfisicalClient({
clientId: process.env.INFISICAL_CLIENT_ID,
clientSecret: process.env.INFISICAL_CLIENT_SECRET,
});
const secrets = await client.listSecrets({
environment: ctx.environment,
projectId: process.env.INFISICAL_PROJECT_ID,
});
return secrets.map((secret) => ({
name: secret.secretKey,
value: secret.secretValue,
}));
}),
puppeteer(),
playwright(),
],
external: ["re2"],
},
});