trigger.dev 3.0.0-beta.9 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/apiClient.d.ts +190 -0
- package/dist/esm/apiClient.js +239 -0
- package/dist/esm/apiClient.js.map +1 -0
- package/dist/esm/build/buildWorker.d.ts +68 -0
- package/dist/esm/build/buildWorker.js +159 -0
- package/dist/esm/build/buildWorker.js.map +1 -0
- package/dist/esm/build/bundle.d.ts +36 -0
- package/dist/esm/build/bundle.js +197 -0
- package/dist/esm/build/bundle.js.map +1 -0
- package/dist/esm/build/extensions.d.ts +15 -0
- package/dist/esm/build/extensions.js +158 -0
- package/dist/esm/build/extensions.js.map +1 -0
- package/dist/esm/build/externals.d.ts +15 -0
- package/dist/esm/build/externals.js +285 -0
- package/dist/esm/build/externals.js.map +1 -0
- package/dist/esm/build/manifests.d.ts +2 -0
- package/dist/esm/build/manifests.js +22 -0
- package/dist/esm/build/manifests.js.map +1 -0
- package/dist/esm/build/packageModules.d.ts +18 -0
- package/dist/esm/build/packageModules.js +84 -0
- package/dist/esm/build/packageModules.js.map +1 -0
- package/dist/esm/build/plugins.d.ts +6 -0
- package/dist/esm/build/plugins.js +67 -0
- package/dist/esm/build/plugins.js.map +1 -0
- package/dist/esm/build/resolveModule.d.ts +1 -0
- package/dist/esm/build/resolveModule.js +9 -0
- package/dist/esm/build/resolveModule.js.map +1 -0
- package/dist/esm/cli/common.d.ts +30 -0
- package/dist/esm/cli/common.js +85 -0
- package/dist/esm/cli/common.js.map +1 -0
- package/dist/esm/cli/index.d.ts +2 -0
- package/dist/esm/cli/index.js +27 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/commands/deploy.d.ts +5 -0
- package/dist/esm/commands/deploy.js +402 -0
- package/dist/esm/commands/deploy.js.map +1 -0
- package/dist/esm/commands/dev.d.ts +37 -0
- package/dist/esm/commands/dev.js +128 -0
- package/dist/esm/commands/dev.js.map +1 -0
- package/dist/esm/commands/init.d.ts +3 -0
- package/dist/esm/commands/init.js +427 -0
- package/dist/esm/commands/init.js.map +1 -0
- package/dist/esm/commands/list-profiles.d.ts +23 -0
- package/dist/esm/commands/list-profiles.js +40 -0
- package/dist/esm/commands/list-profiles.js.map +1 -0
- package/dist/esm/commands/login.d.ts +28 -0
- package/dist/esm/commands/login.js +275 -0
- package/dist/esm/commands/login.js.map +1 -0
- package/dist/esm/commands/logout.d.ts +23 -0
- package/dist/esm/commands/logout.js +28 -0
- package/dist/esm/commands/logout.js.map +1 -0
- package/dist/esm/commands/update.d.ts +24 -0
- package/dist/esm/commands/update.js +243 -0
- package/dist/esm/commands/update.js.map +1 -0
- package/dist/esm/commands/whoami.d.ts +34 -0
- package/dist/esm/commands/whoami.js +70 -0
- package/dist/esm/commands/whoami.js.map +1 -0
- package/dist/esm/config.d.ts +22 -0
- package/dist/esm/config.js +204 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/consts.d.ts +4 -0
- package/dist/esm/consts.js +5 -0
- package/dist/esm/consts.js.map +1 -0
- package/dist/esm/deploy/buildImage.d.ts +69 -0
- package/dist/esm/deploy/buildImage.js +472 -0
- package/dist/esm/deploy/buildImage.js.map +1 -0
- package/dist/esm/deploy/logs.d.ts +19 -0
- package/dist/esm/deploy/logs.js +96 -0
- package/dist/esm/deploy/logs.js.map +1 -0
- package/dist/esm/dev/backgroundWorker.d.ts +114 -0
- package/dist/esm/dev/backgroundWorker.js +412 -0
- package/dist/esm/dev/backgroundWorker.js.map +1 -0
- package/dist/esm/dev/devOutput.d.ts +9 -0
- package/dist/esm/dev/devOutput.js +137 -0
- package/dist/esm/dev/devOutput.js.map +1 -0
- package/dist/esm/dev/devSession.d.ts +17 -0
- package/dist/esm/dev/devSession.js +156 -0
- package/dist/esm/dev/devSession.js.map +1 -0
- package/dist/esm/dev/workerRuntime.d.ts +16 -0
- package/dist/esm/dev/workerRuntime.js +258 -0
- package/dist/esm/dev/workerRuntime.js.map +1 -0
- package/dist/esm/entryPoints/deploy-index-controller.d.ts +1 -0
- package/dist/esm/entryPoints/deploy-index-controller.js +85 -0
- package/dist/esm/entryPoints/deploy-index-controller.js.map +1 -0
- package/dist/esm/entryPoints/deploy-index-worker.d.ts +1 -0
- package/dist/esm/entryPoints/deploy-index-worker.js +104 -0
- package/dist/esm/entryPoints/deploy-index-worker.js.map +1 -0
- package/dist/esm/entryPoints/deploy-run-controller.d.ts +1 -0
- package/dist/esm/entryPoints/deploy-run-controller.js +996 -0
- package/dist/esm/entryPoints/deploy-run-controller.js.map +1 -0
- package/dist/esm/entryPoints/deploy-run-worker.d.ts +1 -0
- package/dist/esm/entryPoints/deploy-run-worker.js +297 -0
- package/dist/esm/entryPoints/deploy-run-worker.js.map +1 -0
- package/dist/esm/entryPoints/dev-index-worker.d.ts +1 -0
- package/dist/esm/entryPoints/dev-index-worker.js +104 -0
- package/dist/esm/entryPoints/dev-index-worker.js.map +1 -0
- package/dist/esm/entryPoints/dev-run-worker.d.ts +1 -0
- package/dist/esm/entryPoints/dev-run-worker.js +254 -0
- package/dist/esm/entryPoints/dev-run-worker.js.map +1 -0
- package/dist/esm/entryPoints/loader.d.ts +1 -0
- package/dist/esm/entryPoints/loader.js +16 -0
- package/dist/esm/entryPoints/loader.js.map +1 -0
- package/dist/esm/executions/taskRunProcess.d.ts +115 -0
- package/dist/esm/executions/taskRunProcess.js +254 -0
- package/dist/esm/executions/taskRunProcess.js.map +1 -0
- package/dist/esm/imports/magicast.d.ts +2 -0
- package/dist/esm/imports/magicast.js +5 -0
- package/dist/esm/imports/magicast.js.map +1 -0
- package/dist/esm/imports/xdg-app-paths.d.ts +2 -0
- package/dist/esm/imports/xdg-app-paths.js +3 -0
- package/dist/esm/imports/xdg-app-paths.js.map +1 -0
- package/dist/{index.d.ts → esm/index.d.ts} +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indexing/indexWorkerManifest.d.ts +85 -0
- package/dist/esm/indexing/indexWorkerManifest.js +76 -0
- package/dist/esm/indexing/indexWorkerManifest.js.map +1 -0
- package/dist/esm/indexing/registerTasks.d.ts +2 -0
- package/dist/esm/indexing/registerTasks.js +62 -0
- package/dist/esm/indexing/registerTasks.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/runtimes/bun.d.ts +2 -0
- package/dist/esm/runtimes/bun.js +11 -0
- package/dist/esm/runtimes/bun.js.map +1 -0
- package/dist/esm/shims/esm.d.ts +1 -0
- package/dist/esm/shims/esm.js +9 -0
- package/dist/esm/shims/esm.js.map +1 -0
- package/dist/esm/sourceDir.d.ts +1 -0
- package/dist/esm/sourceDir.js +4 -0
- package/dist/esm/sourceDir.js.map +1 -0
- package/dist/esm/telemetry/tracing.d.ts +3 -0
- package/dist/esm/telemetry/tracing.js +58 -0
- package/dist/esm/telemetry/tracing.js.map +1 -0
- package/dist/esm/types.d.ts +6 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utilities/assertExhaustive.d.ts +1 -0
- package/dist/esm/utilities/assertExhaustive.js +4 -0
- package/dist/esm/utilities/assertExhaustive.js.map +1 -0
- package/dist/esm/utilities/buildManifest.d.ts +2 -0
- package/dist/esm/utilities/buildManifest.js +9 -0
- package/dist/esm/utilities/buildManifest.js.map +1 -0
- package/dist/esm/utilities/cliOutput.d.ts +20 -0
- package/dist/esm/utilities/cliOutput.js +88 -0
- package/dist/esm/utilities/cliOutput.js.map +1 -0
- package/dist/esm/utilities/configFiles.d.ts +29 -0
- package/dist/esm/utilities/configFiles.js +65 -0
- package/dist/esm/utilities/configFiles.js.map +1 -0
- package/dist/esm/utilities/createFileFromTemplate.d.ts +16 -0
- package/dist/esm/utilities/createFileFromTemplate.js +50 -0
- package/dist/esm/utilities/createFileFromTemplate.js.map +1 -0
- package/dist/esm/utilities/deployErrors.d.ts +19 -0
- package/dist/esm/utilities/deployErrors.js +117 -0
- package/dist/esm/utilities/deployErrors.js.map +1 -0
- package/dist/esm/utilities/dotEnv.d.ts +4 -0
- package/dist/esm/utilities/dotEnv.js +28 -0
- package/dist/esm/utilities/dotEnv.js.map +1 -0
- package/dist/esm/utilities/eventBus.d.ts +14 -0
- package/dist/esm/utilities/eventBus.js +3 -0
- package/dist/esm/utilities/eventBus.js.map +1 -0
- package/dist/esm/utilities/fileSystem.d.ts +12 -0
- package/dist/esm/utilities/fileSystem.js +81 -0
- package/dist/esm/utilities/fileSystem.js.map +1 -0
- package/dist/esm/utilities/getApiKeyType.d.ts +13 -0
- package/dist/esm/utilities/getApiKeyType.js +44 -0
- package/dist/esm/utilities/getApiKeyType.js.map +1 -0
- package/dist/esm/utilities/initialBanner.d.ts +4 -0
- package/dist/esm/utilities/initialBanner.js +82 -0
- package/dist/esm/utilities/initialBanner.js.map +1 -0
- package/dist/esm/utilities/keyValueBy.d.ts +8 -0
- package/dist/esm/utilities/keyValueBy.js +19 -0
- package/dist/esm/utilities/keyValueBy.js.map +1 -0
- package/dist/esm/utilities/links.d.ts +9 -0
- package/dist/esm/utilities/links.js +10 -0
- package/dist/esm/utilities/links.js.map +1 -0
- package/dist/esm/utilities/linux.d.ts +1 -0
- package/dist/esm/utilities/linux.js +24 -0
- package/dist/esm/utilities/linux.js.map +1 -0
- package/dist/esm/utilities/logger.d.ts +40 -0
- package/dist/esm/utilities/logger.js +109 -0
- package/dist/esm/utilities/logger.js.map +1 -0
- package/dist/esm/utilities/normalizeImportPath.d.ts +1 -0
- package/dist/esm/utilities/normalizeImportPath.js +5 -0
- package/dist/esm/utilities/normalizeImportPath.js.map +1 -0
- package/dist/esm/utilities/obfuscateApiKey.d.ts +1 -0
- package/dist/esm/utilities/obfuscateApiKey.js +5 -0
- package/dist/esm/utilities/obfuscateApiKey.js.map +1 -0
- package/dist/esm/utilities/parseNameAndPath.d.ts +2 -0
- package/dist/esm/utilities/parseNameAndPath.js +10 -0
- package/dist/esm/utilities/parseNameAndPath.js.map +1 -0
- package/dist/esm/utilities/resolveInternalFilePath.d.ts +1 -0
- package/dist/esm/utilities/resolveInternalFilePath.js +8 -0
- package/dist/esm/utilities/resolveInternalFilePath.js.map +1 -0
- package/dist/esm/utilities/runtimeCheck.d.ts +8 -0
- package/dist/esm/utilities/runtimeCheck.js +52 -0
- package/dist/esm/utilities/runtimeCheck.js.map +1 -0
- package/dist/esm/utilities/safeJsonParse.d.ts +1 -0
- package/dist/esm/utilities/safeJsonParse.js +12 -0
- package/dist/esm/utilities/safeJsonParse.js.map +1 -0
- package/dist/esm/utilities/sanitizeEnvVars.d.ts +3 -0
- package/dist/esm/utilities/sanitizeEnvVars.js +4 -0
- package/dist/esm/utilities/sanitizeEnvVars.js.map +1 -0
- package/dist/esm/utilities/session.d.ts +33 -0
- package/dist/esm/utilities/session.js +82 -0
- package/dist/esm/utilities/session.js.map +1 -0
- package/dist/esm/utilities/sourceFiles.d.ts +12 -0
- package/dist/esm/utilities/sourceFiles.js +76 -0
- package/dist/esm/utilities/sourceFiles.js.map +1 -0
- package/dist/esm/utilities/taskFiles.d.ts +6 -0
- package/dist/esm/utilities/taskFiles.js +69 -0
- package/dist/esm/utilities/taskFiles.js.map +1 -0
- package/dist/esm/utilities/tempDirectories.d.ts +16 -0
- package/dist/esm/utilities/tempDirectories.js +27 -0
- package/dist/esm/utilities/tempDirectories.js.map +1 -0
- package/dist/esm/utilities/windows.d.ts +7 -0
- package/dist/esm/utilities/windows.js +21 -0
- package/dist/esm/utilities/windows.js.map +1 -0
- package/dist/esm/version.d.ts +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +85 -82
- package/dist/Containerfile.prod +0 -39
- package/dist/index.js +0 -6115
- package/dist/index.js.map +0 -1
- package/dist/templates/examples/simple.ts.template +0 -14
- package/dist/templates/trigger.config.ts.template +0 -16
- package/dist/workers/dev/worker-facade.js +0 -187
- package/dist/workers/dev/worker-setup.js +0 -40
- package/dist/workers/prod/entry-point.js +0 -1146
- package/dist/workers/prod/worker-facade.js +0 -193
- package/dist/workers/prod/worker-setup.js +0 -35
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { createTempDir, writeJSONFile } from "../utilities/fileSystem.js";
|
|
3
|
+
import { logger } from "../utilities/logger.js";
|
|
4
|
+
import { depot } from "@depot/cli";
|
|
5
|
+
import { x } from "tinyexec";
|
|
6
|
+
export async function buildImage(options) {
|
|
7
|
+
const { selfHosted, buildPlatform, noCache, push, registry, loadImage, registryHost, authAccessToken, imageTag, deploymentId, deploymentVersion, contentHash, externalBuildId, externalBuildToken, externalBuildProjectId, compilationPath, projectId, projectRef, extraCACerts, apiUrl, apiKey, buildEnvVars, } = options;
|
|
8
|
+
if (selfHosted) {
|
|
9
|
+
return selfHostedBuildImage({
|
|
10
|
+
registryHost: registryHost,
|
|
11
|
+
imageTag: imageTag,
|
|
12
|
+
cwd: compilationPath,
|
|
13
|
+
projectId: projectId,
|
|
14
|
+
deploymentId: deploymentId,
|
|
15
|
+
deploymentVersion: deploymentVersion,
|
|
16
|
+
contentHash: contentHash,
|
|
17
|
+
projectRef: projectRef,
|
|
18
|
+
buildPlatform: buildPlatform,
|
|
19
|
+
pushImage: push,
|
|
20
|
+
selfHostedRegistry: !!registry,
|
|
21
|
+
noCache: noCache,
|
|
22
|
+
extraCACerts: extraCACerts,
|
|
23
|
+
apiUrl,
|
|
24
|
+
apiKey,
|
|
25
|
+
buildEnvVars,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (!externalBuildId || !externalBuildToken || !externalBuildProjectId) {
|
|
29
|
+
throw new Error("Failed to initialize deployment. The deployment does not have any external build data. To deploy this project, you must use the --self-hosted flag to build and push the image yourself.");
|
|
30
|
+
}
|
|
31
|
+
return depotBuildImage({
|
|
32
|
+
registryHost,
|
|
33
|
+
auth: authAccessToken,
|
|
34
|
+
imageTag,
|
|
35
|
+
buildId: externalBuildId,
|
|
36
|
+
buildToken: externalBuildToken,
|
|
37
|
+
buildProjectId: externalBuildProjectId,
|
|
38
|
+
cwd: compilationPath,
|
|
39
|
+
projectId,
|
|
40
|
+
deploymentId,
|
|
41
|
+
deploymentVersion,
|
|
42
|
+
contentHash,
|
|
43
|
+
projectRef,
|
|
44
|
+
loadImage,
|
|
45
|
+
buildPlatform,
|
|
46
|
+
noCache,
|
|
47
|
+
extraCACerts,
|
|
48
|
+
apiUrl,
|
|
49
|
+
apiKey,
|
|
50
|
+
buildEnvVars,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async function depotBuildImage(options) {
|
|
54
|
+
// Step 3: Ensure we are "logged in" to our registry by writing to $HOME/.docker/config.json
|
|
55
|
+
// TODO: make sure this works on windows
|
|
56
|
+
const dockerConfigDir = await ensureLoggedIntoDockerRegistry(options.registryHost, {
|
|
57
|
+
username: "trigger",
|
|
58
|
+
password: options.auth,
|
|
59
|
+
});
|
|
60
|
+
const buildArgs = Object.entries(options.buildEnvVars || {})
|
|
61
|
+
.filter(([key, value]) => value)
|
|
62
|
+
.flatMap(([key, value]) => ["--build-arg", `${key}=${value}`]);
|
|
63
|
+
const args = [
|
|
64
|
+
"build",
|
|
65
|
+
"-f",
|
|
66
|
+
"Containerfile",
|
|
67
|
+
options.noCache ? "--no-cache" : undefined,
|
|
68
|
+
"--platform",
|
|
69
|
+
options.buildPlatform,
|
|
70
|
+
"--provenance",
|
|
71
|
+
"false",
|
|
72
|
+
"--build-arg",
|
|
73
|
+
`TRIGGER_PROJECT_ID=${options.projectId}`,
|
|
74
|
+
"--build-arg",
|
|
75
|
+
`TRIGGER_DEPLOYMENT_ID=${options.deploymentId}`,
|
|
76
|
+
"--build-arg",
|
|
77
|
+
`TRIGGER_DEPLOYMENT_VERSION=${options.deploymentVersion}`,
|
|
78
|
+
"--build-arg",
|
|
79
|
+
`TRIGGER_CONTENT_HASH=${options.contentHash}`,
|
|
80
|
+
"--build-arg",
|
|
81
|
+
`TRIGGER_PROJECT_REF=${options.projectRef}`,
|
|
82
|
+
"--build-arg",
|
|
83
|
+
`TRIGGER_API_URL=${options.apiUrl}`,
|
|
84
|
+
"--build-arg",
|
|
85
|
+
`TRIGGER_SECRET_KEY=${options.apiKey}`,
|
|
86
|
+
...(buildArgs || []),
|
|
87
|
+
...(options.extraCACerts ? ["--build-arg", `NODE_EXTRA_CA_CERTS=${options.extraCACerts}`] : []),
|
|
88
|
+
"--progress",
|
|
89
|
+
"plain",
|
|
90
|
+
"-t",
|
|
91
|
+
`${options.registryHost}/${options.imageTag}`,
|
|
92
|
+
".",
|
|
93
|
+
"--push",
|
|
94
|
+
options.loadImage ? "--load" : undefined,
|
|
95
|
+
].filter(Boolean);
|
|
96
|
+
logger.debug(`depot ${args.join(" ")}`);
|
|
97
|
+
// Step 4: Build and push the image
|
|
98
|
+
const childProcess = depot(args, {
|
|
99
|
+
cwd: options.cwd,
|
|
100
|
+
env: {
|
|
101
|
+
DEPOT_BUILD_ID: options.buildId,
|
|
102
|
+
DEPOT_TOKEN: options.buildToken,
|
|
103
|
+
DEPOT_PROJECT_ID: options.buildProjectId,
|
|
104
|
+
DEPOT_NO_SUMMARY_LINK: "1",
|
|
105
|
+
DEPOT_NO_UPDATE_NOTIFIER: "1",
|
|
106
|
+
DOCKER_CONFIG: dockerConfigDir,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
const errors = [];
|
|
110
|
+
try {
|
|
111
|
+
const processCode = await new Promise((res, rej) => {
|
|
112
|
+
// For some reason everything is output on stderr, not stdout
|
|
113
|
+
childProcess.stderr?.on("data", (data) => {
|
|
114
|
+
const text = data.toString();
|
|
115
|
+
// Emitted data chunks can contain multiple lines. Remove empty lines.
|
|
116
|
+
const lines = text.split("\n").filter(Boolean);
|
|
117
|
+
errors.push(...lines);
|
|
118
|
+
logger.debug(text);
|
|
119
|
+
});
|
|
120
|
+
childProcess.on("error", (e) => rej(e));
|
|
121
|
+
childProcess.on("close", (code) => res(code));
|
|
122
|
+
});
|
|
123
|
+
const logs = extractLogs(errors);
|
|
124
|
+
if (processCode !== 0) {
|
|
125
|
+
return {
|
|
126
|
+
ok: false,
|
|
127
|
+
error: `Error building image`,
|
|
128
|
+
logs,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const digest = extractImageDigest(errors);
|
|
132
|
+
return {
|
|
133
|
+
ok: true,
|
|
134
|
+
image: options.imageTag,
|
|
135
|
+
logs,
|
|
136
|
+
digest,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
return {
|
|
141
|
+
ok: false,
|
|
142
|
+
error: e instanceof Error ? e.message : JSON.stringify(e),
|
|
143
|
+
logs: extractLogs(errors),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
async function selfHostedBuildImage(options) {
|
|
148
|
+
const imageRef = `${options.registryHost ? `${options.registryHost}/` : ""}${options.imageTag}`;
|
|
149
|
+
const buildArgs = Object.entries(options.buildEnvVars || {})
|
|
150
|
+
.filter(([key, value]) => value)
|
|
151
|
+
.flatMap(([key, value]) => ["--build-arg", `${key}=${value}`]);
|
|
152
|
+
const args = [
|
|
153
|
+
"build",
|
|
154
|
+
"-f",
|
|
155
|
+
"Containerfile",
|
|
156
|
+
options.noCache ? "--no-cache" : undefined,
|
|
157
|
+
"--platform",
|
|
158
|
+
options.buildPlatform,
|
|
159
|
+
"--build-arg",
|
|
160
|
+
`TRIGGER_PROJECT_ID=${options.projectId}`,
|
|
161
|
+
"--build-arg",
|
|
162
|
+
`TRIGGER_DEPLOYMENT_ID=${options.deploymentId}`,
|
|
163
|
+
"--build-arg",
|
|
164
|
+
`TRIGGER_DEPLOYMENT_VERSION=${options.deploymentVersion}`,
|
|
165
|
+
"--build-arg",
|
|
166
|
+
`TRIGGER_CONTENT_HASH=${options.contentHash}`,
|
|
167
|
+
"--build-arg",
|
|
168
|
+
`TRIGGER_PROJECT_REF=${options.projectRef}`,
|
|
169
|
+
"--build-arg",
|
|
170
|
+
`TRIGGER_API_URL=${options.apiUrl}`,
|
|
171
|
+
"--build-arg",
|
|
172
|
+
`TRIGGER_SECRET_KEY=${options.apiKey}`,
|
|
173
|
+
...(buildArgs || []),
|
|
174
|
+
...(options.extraCACerts ? ["--build-arg", `NODE_EXTRA_CA_CERTS=${options.extraCACerts}`] : []),
|
|
175
|
+
"--progress",
|
|
176
|
+
"plain",
|
|
177
|
+
"-t",
|
|
178
|
+
imageRef,
|
|
179
|
+
".", // The build context
|
|
180
|
+
].filter(Boolean);
|
|
181
|
+
logger.debug(`docker ${args.join(" ")}`, {
|
|
182
|
+
cwd: options.cwd,
|
|
183
|
+
});
|
|
184
|
+
const errors = [];
|
|
185
|
+
let digest;
|
|
186
|
+
// Build the image
|
|
187
|
+
const buildProcess = x("docker", args, {
|
|
188
|
+
nodeOptions: { cwd: options.cwd },
|
|
189
|
+
});
|
|
190
|
+
for await (const line of buildProcess) {
|
|
191
|
+
// line will be from stderr/stdout in the order you'd see it in a term
|
|
192
|
+
errors.push(line);
|
|
193
|
+
logger.debug(line);
|
|
194
|
+
}
|
|
195
|
+
if (buildProcess.exitCode !== 0) {
|
|
196
|
+
return {
|
|
197
|
+
ok: false,
|
|
198
|
+
error: "Error building image",
|
|
199
|
+
logs: extractLogs(errors),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
digest = extractImageDigest(errors);
|
|
203
|
+
if (options.selfHostedRegistry || options.pushImage) {
|
|
204
|
+
const pushArgs = ["push", imageRef].filter(Boolean);
|
|
205
|
+
logger.debug(`docker ${pushArgs.join(" ")}`);
|
|
206
|
+
// Push the image
|
|
207
|
+
const pushProcess = x("docker", pushArgs, {
|
|
208
|
+
nodeOptions: { cwd: options.cwd },
|
|
209
|
+
});
|
|
210
|
+
for await (const line of pushProcess) {
|
|
211
|
+
logger.debug(line);
|
|
212
|
+
}
|
|
213
|
+
if (pushProcess.exitCode !== 0) {
|
|
214
|
+
return {
|
|
215
|
+
ok: false,
|
|
216
|
+
error: "Error pushing image",
|
|
217
|
+
logs: extractLogs(errors),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return {
|
|
222
|
+
ok: true,
|
|
223
|
+
image: options.imageTag,
|
|
224
|
+
digest,
|
|
225
|
+
logs: extractLogs(errors),
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
async function ensureLoggedIntoDockerRegistry(registryHost, auth) {
|
|
229
|
+
const tmpDir = await createTempDir();
|
|
230
|
+
// Read the current docker config
|
|
231
|
+
const dockerConfigPath = join(tmpDir, "config.json");
|
|
232
|
+
await writeJSONFile(dockerConfigPath, {
|
|
233
|
+
auths: {
|
|
234
|
+
[registryHost]: {
|
|
235
|
+
auth: Buffer.from(`${auth.username}:${auth.password}`).toString("base64"),
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
logger.debug(`Writing docker config to ${dockerConfigPath}`);
|
|
240
|
+
return tmpDir;
|
|
241
|
+
}
|
|
242
|
+
function extractLogs(outputs) {
|
|
243
|
+
// Remove empty lines
|
|
244
|
+
const cleanedOutputs = outputs.map((line) => line.trim()).filter((line) => line !== "");
|
|
245
|
+
return cleanedOutputs.map((line) => line.trim()).join("\n");
|
|
246
|
+
}
|
|
247
|
+
function extractImageDigest(outputs) {
|
|
248
|
+
const imageDigestRegex = /pushing manifest for .+(?<digest>sha256:[a-f0-9]{64})/;
|
|
249
|
+
for (const line of outputs) {
|
|
250
|
+
const imageDigestMatch = line.match(imageDigestRegex);
|
|
251
|
+
const digest = imageDigestMatch?.groups?.digest;
|
|
252
|
+
if (digest) {
|
|
253
|
+
return digest;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
const DEFAULT_PACKAGES = ["busybox", "ca-certificates", "dumb-init", "git", "openssl"];
|
|
259
|
+
export async function generateContainerfile(options) {
|
|
260
|
+
switch (options.runtime) {
|
|
261
|
+
case "node": {
|
|
262
|
+
return await generateNodeContainerfile(options);
|
|
263
|
+
}
|
|
264
|
+
case "bun": {
|
|
265
|
+
return await generateBunContainerfile(options);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
async function generateBunContainerfile(options) {
|
|
270
|
+
const buildArgs = Object.entries(options.build.env || {})
|
|
271
|
+
.flatMap(([key]) => `ARG ${key}`)
|
|
272
|
+
.join("\n");
|
|
273
|
+
const buildEnvVars = Object.entries(options.build.env || {})
|
|
274
|
+
.flatMap(([key]) => `ENV ${key}=$${key}`)
|
|
275
|
+
.join("\n");
|
|
276
|
+
const postInstallCommands = (options.build.commands || []).map((cmd) => `RUN ${cmd}`).join("\n");
|
|
277
|
+
const baseInstructions = (options.image?.instructions || []).join("\n");
|
|
278
|
+
const packages = Array.from(new Set(DEFAULT_PACKAGES.concat(options.image?.pkgs || []))).join(" ");
|
|
279
|
+
return `
|
|
280
|
+
FROM imbios/bun-node:22-debian AS base
|
|
281
|
+
|
|
282
|
+
${baseInstructions}
|
|
283
|
+
|
|
284
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
285
|
+
RUN apt-get update && apt-get --fix-broken install -y && apt-get install -y --no-install-recommends ${packages} && apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
286
|
+
|
|
287
|
+
FROM base AS build
|
|
288
|
+
|
|
289
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
290
|
+
python3 make g++ && \
|
|
291
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
292
|
+
|
|
293
|
+
USER bun
|
|
294
|
+
WORKDIR /app
|
|
295
|
+
|
|
296
|
+
${buildArgs}
|
|
297
|
+
|
|
298
|
+
${buildEnvVars}
|
|
299
|
+
|
|
300
|
+
COPY --chown=bun:bun package.json ./
|
|
301
|
+
RUN bun install --production --no-save
|
|
302
|
+
|
|
303
|
+
# Now copy all the files
|
|
304
|
+
# IMPORTANT: Do this after running npm install because npm i will wipe out the node_modules directory
|
|
305
|
+
COPY --chown=bun:bun . .
|
|
306
|
+
|
|
307
|
+
${postInstallCommands}
|
|
308
|
+
|
|
309
|
+
from build as indexer
|
|
310
|
+
|
|
311
|
+
USER bun
|
|
312
|
+
WORKDIR /app
|
|
313
|
+
|
|
314
|
+
ARG TRIGGER_PROJECT_ID
|
|
315
|
+
ARG TRIGGER_DEPLOYMENT_ID
|
|
316
|
+
ARG TRIGGER_DEPLOYMENT_VERSION
|
|
317
|
+
ARG TRIGGER_CONTENT_HASH
|
|
318
|
+
ARG TRIGGER_PROJECT_REF
|
|
319
|
+
ARG NODE_EXTRA_CA_CERTS
|
|
320
|
+
ARG TRIGGER_SECRET_KEY
|
|
321
|
+
ARG TRIGGER_API_URL
|
|
322
|
+
|
|
323
|
+
ENV TRIGGER_PROJECT_ID=\${TRIGGER_PROJECT_ID} \
|
|
324
|
+
TRIGGER_DEPLOYMENT_ID=\${TRIGGER_DEPLOYMENT_ID} \
|
|
325
|
+
TRIGGER_DEPLOYMENT_VERSION=\${TRIGGER_DEPLOYMENT_VERSION} \
|
|
326
|
+
TRIGGER_PROJECT_REF=\${TRIGGER_PROJECT_REF} \
|
|
327
|
+
TRIGGER_CONTENT_HASH=\${TRIGGER_CONTENT_HASH} \
|
|
328
|
+
TRIGGER_SECRET_KEY=\${TRIGGER_SECRET_KEY} \
|
|
329
|
+
TRIGGER_API_URL=\${TRIGGER_API_URL} \
|
|
330
|
+
NODE_EXTRA_CA_CERTS=\${NODE_EXTRA_CA_CERTS} \
|
|
331
|
+
NODE_ENV=production
|
|
332
|
+
|
|
333
|
+
# Run the indexer
|
|
334
|
+
RUN bun run ${options.indexScript}
|
|
335
|
+
|
|
336
|
+
# Development or production stage builds upon the base stage
|
|
337
|
+
FROM base AS final
|
|
338
|
+
|
|
339
|
+
USER bun
|
|
340
|
+
WORKDIR /app
|
|
341
|
+
|
|
342
|
+
ARG TRIGGER_PROJECT_ID
|
|
343
|
+
ARG TRIGGER_DEPLOYMENT_ID
|
|
344
|
+
ARG TRIGGER_DEPLOYMENT_VERSION
|
|
345
|
+
ARG TRIGGER_CONTENT_HASH
|
|
346
|
+
ARG TRIGGER_PROJECT_REF
|
|
347
|
+
ARG NODE_EXTRA_CA_CERTS
|
|
348
|
+
|
|
349
|
+
ENV TRIGGER_PROJECT_ID=\${TRIGGER_PROJECT_ID} \
|
|
350
|
+
TRIGGER_DEPLOYMENT_ID=\${TRIGGER_DEPLOYMENT_ID} \
|
|
351
|
+
TRIGGER_DEPLOYMENT_VERSION=\${TRIGGER_DEPLOYMENT_VERSION} \
|
|
352
|
+
TRIGGER_CONTENT_HASH=\${TRIGGER_CONTENT_HASH} \
|
|
353
|
+
TRIGGER_PROJECT_REF=\${TRIGGER_PROJECT_REF} \
|
|
354
|
+
NODE_EXTRA_CA_CERTS=\${NODE_EXTRA_CA_CERTS} \
|
|
355
|
+
NODE_ENV=production
|
|
356
|
+
|
|
357
|
+
# Copy the files from the build stage
|
|
358
|
+
COPY --from=build --chown=bun:bun /app ./
|
|
359
|
+
|
|
360
|
+
# Copy the index.json file from the indexer stage
|
|
361
|
+
COPY --from=indexer --chown=bun:bun /app/index.json ./
|
|
362
|
+
|
|
363
|
+
ENTRYPOINT [ "dumb-init", "node", "${options.entrypoint}" ]
|
|
364
|
+
CMD []
|
|
365
|
+
`;
|
|
366
|
+
}
|
|
367
|
+
async function generateNodeContainerfile(options) {
|
|
368
|
+
const buildArgs = Object.entries(options.build.env || {})
|
|
369
|
+
.flatMap(([key]) => `ARG ${key}`)
|
|
370
|
+
.join("\n");
|
|
371
|
+
const buildEnvVars = Object.entries(options.build.env || {})
|
|
372
|
+
.flatMap(([key]) => `ENV ${key}=$${key}`)
|
|
373
|
+
.join("\n");
|
|
374
|
+
const postInstallCommands = (options.build.commands || []).map((cmd) => `RUN ${cmd}`).join("\n");
|
|
375
|
+
const baseInstructions = (options.image?.instructions || []).join("\n");
|
|
376
|
+
const packages = Array.from(new Set(DEFAULT_PACKAGES.concat(options.image?.pkgs || []))).join(" ");
|
|
377
|
+
return `
|
|
378
|
+
FROM node:21-bookworm-slim@sha256:99afef5df7400a8d118e0504576d32ca700de5034c4f9271d2ff7c91cc12d170 AS base
|
|
379
|
+
|
|
380
|
+
${baseInstructions}
|
|
381
|
+
|
|
382
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
383
|
+
RUN apt-get update && apt-get --fix-broken install -y && apt-get install -y --no-install-recommends ${packages} && apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
384
|
+
|
|
385
|
+
FROM base AS build
|
|
386
|
+
|
|
387
|
+
# Install build dependencies
|
|
388
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
389
|
+
python3 make g++ && \
|
|
390
|
+
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
391
|
+
|
|
392
|
+
USER node
|
|
393
|
+
WORKDIR /app
|
|
394
|
+
|
|
395
|
+
${buildArgs}
|
|
396
|
+
|
|
397
|
+
${buildEnvVars}
|
|
398
|
+
|
|
399
|
+
ENV NODE_ENV=production
|
|
400
|
+
ENV NPM_CONFIG_UPDATE_NOTIFIER=false
|
|
401
|
+
|
|
402
|
+
COPY --chown=node:node package.json ./
|
|
403
|
+
RUN npm i --no-audit --no-fund --no-save --no-package-lock
|
|
404
|
+
|
|
405
|
+
# Now copy all the files
|
|
406
|
+
# IMPORTANT: Do this after running npm install because npm i will wipe out the node_modules directory
|
|
407
|
+
COPY --chown=node:node . .
|
|
408
|
+
|
|
409
|
+
${postInstallCommands}
|
|
410
|
+
|
|
411
|
+
from build as indexer
|
|
412
|
+
|
|
413
|
+
USER node
|
|
414
|
+
WORKDIR /app
|
|
415
|
+
|
|
416
|
+
ARG TRIGGER_PROJECT_ID
|
|
417
|
+
ARG TRIGGER_DEPLOYMENT_ID
|
|
418
|
+
ARG TRIGGER_DEPLOYMENT_VERSION
|
|
419
|
+
ARG TRIGGER_CONTENT_HASH
|
|
420
|
+
ARG TRIGGER_PROJECT_REF
|
|
421
|
+
ARG NODE_EXTRA_CA_CERTS
|
|
422
|
+
ARG TRIGGER_SECRET_KEY
|
|
423
|
+
ARG TRIGGER_API_URL
|
|
424
|
+
|
|
425
|
+
ENV TRIGGER_PROJECT_ID=\${TRIGGER_PROJECT_ID} \
|
|
426
|
+
TRIGGER_DEPLOYMENT_ID=\${TRIGGER_DEPLOYMENT_ID} \
|
|
427
|
+
TRIGGER_DEPLOYMENT_VERSION=\${TRIGGER_DEPLOYMENT_VERSION} \
|
|
428
|
+
TRIGGER_PROJECT_REF=\${TRIGGER_PROJECT_REF} \
|
|
429
|
+
TRIGGER_CONTENT_HASH=\${TRIGGER_CONTENT_HASH} \
|
|
430
|
+
TRIGGER_SECRET_KEY=\${TRIGGER_SECRET_KEY} \
|
|
431
|
+
TRIGGER_API_URL=\${TRIGGER_API_URL} \
|
|
432
|
+
TRIGGER_LOG_LEVEL=debug \
|
|
433
|
+
NODE_EXTRA_CA_CERTS=\${NODE_EXTRA_CA_CERTS} \
|
|
434
|
+
NODE_ENV=production \
|
|
435
|
+
NODE_OPTIONS="--max_old_space_size=8192"
|
|
436
|
+
|
|
437
|
+
# Run the indexer
|
|
438
|
+
RUN node ${options.indexScript}
|
|
439
|
+
|
|
440
|
+
# Development or production stage builds upon the base stage
|
|
441
|
+
FROM base AS final
|
|
442
|
+
|
|
443
|
+
USER node
|
|
444
|
+
WORKDIR /app
|
|
445
|
+
|
|
446
|
+
ARG TRIGGER_PROJECT_ID
|
|
447
|
+
ARG TRIGGER_DEPLOYMENT_ID
|
|
448
|
+
ARG TRIGGER_DEPLOYMENT_VERSION
|
|
449
|
+
ARG TRIGGER_CONTENT_HASH
|
|
450
|
+
ARG TRIGGER_PROJECT_REF
|
|
451
|
+
ARG NODE_EXTRA_CA_CERTS
|
|
452
|
+
|
|
453
|
+
ENV TRIGGER_PROJECT_ID=\${TRIGGER_PROJECT_ID} \
|
|
454
|
+
TRIGGER_DEPLOYMENT_ID=\${TRIGGER_DEPLOYMENT_ID} \
|
|
455
|
+
TRIGGER_DEPLOYMENT_VERSION=\${TRIGGER_DEPLOYMENT_VERSION} \
|
|
456
|
+
TRIGGER_CONTENT_HASH=\${TRIGGER_CONTENT_HASH} \
|
|
457
|
+
TRIGGER_PROJECT_REF=\${TRIGGER_PROJECT_REF} \
|
|
458
|
+
NODE_EXTRA_CA_CERTS=\${NODE_EXTRA_CA_CERTS} \
|
|
459
|
+
NODE_ENV=production \
|
|
460
|
+
NODE_OPTIONS="--max_old_space_size=8192"
|
|
461
|
+
|
|
462
|
+
# Copy the files from the install stage
|
|
463
|
+
COPY --from=build --chown=node:node /app ./
|
|
464
|
+
|
|
465
|
+
# Copy the index.json file from the indexer stage
|
|
466
|
+
COPY --from=indexer --chown=node:node /app/index.json ./
|
|
467
|
+
|
|
468
|
+
ENTRYPOINT [ "dumb-init", "node", "${options.entrypoint}" ]
|
|
469
|
+
CMD []
|
|
470
|
+
`;
|
|
471
|
+
}
|
|
472
|
+
//# sourceMappingURL=buildImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildImage.js","sourceRoot":"","sources":["../../../src/deploy/buildImage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type WarningsCheckReturn = {
|
|
2
|
+
ok: true;
|
|
3
|
+
warnings: string[];
|
|
4
|
+
} | {
|
|
5
|
+
ok: false;
|
|
6
|
+
summary: string;
|
|
7
|
+
errors: string[];
|
|
8
|
+
warnings: string[];
|
|
9
|
+
};
|
|
10
|
+
export type LogParserOptions = Array<{
|
|
11
|
+
regex: RegExp;
|
|
12
|
+
message: string;
|
|
13
|
+
shouldFail?: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function saveLogs(shortCode: string, logs: string): Promise<string>;
|
|
16
|
+
export declare function printErrors(errors?: string[]): void;
|
|
17
|
+
export declare function printWarnings(warnings?: string[]): void;
|
|
18
|
+
export declare function checkLogsForErrors(logs: string): void;
|
|
19
|
+
export declare function checkLogsForWarnings(logs: string): WarningsCheckReturn;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { log } from "@clack/prompts";
|
|
2
|
+
import { writeFile } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { chalkError, chalkWarning, cliLink } from "../utilities/cliOutput.js";
|
|
5
|
+
import { createTempDir } from "../utilities/fileSystem.js";
|
|
6
|
+
import { docs, getInTouch } from "../utilities/links.js";
|
|
7
|
+
export async function saveLogs(shortCode, logs) {
|
|
8
|
+
const logPath = join(await createTempDir(), `build-${shortCode}.log`);
|
|
9
|
+
await writeFile(logPath, logs);
|
|
10
|
+
return logPath;
|
|
11
|
+
}
|
|
12
|
+
export function printErrors(errors) {
|
|
13
|
+
for (const error of errors ?? []) {
|
|
14
|
+
log.error(`${chalkError("Error:")} ${error}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function printWarnings(warnings) {
|
|
18
|
+
for (const warning of warnings ?? []) {
|
|
19
|
+
log.warn(`${chalkWarning("Warning:")} ${warning}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Try to extract useful error messages from the logs
|
|
23
|
+
export function checkLogsForErrors(logs) {
|
|
24
|
+
const errors = [
|
|
25
|
+
{
|
|
26
|
+
regex: /Error: Provided --schema at (?<schema>.*) doesn't exist/,
|
|
27
|
+
message: `Prisma generate failed to find the specified schema at "$schema".\nDid you include it in config.additionalFiles? ${cliLink("Config docs", docs.config.prisma)}`,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
regex: /@prisma\/client did not initialize yet/,
|
|
31
|
+
message: `Prisma client not initialized yet.\nDid you forget to add the postinstall script? ${cliLink("Config docs", docs.config.prisma)}`,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
regex: /sh: 1: (?<packageOrBinary>.*): not found/,
|
|
35
|
+
message: `$packageOrBinary not found\n\nIf it's a package: Include it in ${cliLink("config.additionalPackages", docs.config.prisma)}\nIf it's a binary: Please ${cliLink("get in touch", getInTouch)} and we'll see what we can do!`,
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
for (const error of errors) {
|
|
39
|
+
const matches = logs.match(error.regex);
|
|
40
|
+
if (!matches) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const message = getMessageFromTemplate(error.message, matches.groups);
|
|
44
|
+
log.error(`${chalkError("Error:")} ${message}`);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function getMessageFromTemplate(template, replacer) {
|
|
49
|
+
let message = template;
|
|
50
|
+
if (replacer) {
|
|
51
|
+
for (const [key, value] of Object.entries(replacer)) {
|
|
52
|
+
message = message.replaceAll(`$${key}`, value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return message;
|
|
56
|
+
}
|
|
57
|
+
// Try to extract useful warnings from logs. Sometimes we may even want to fail the build. This won't work if the step is cached.
|
|
58
|
+
export function checkLogsForWarnings(logs) {
|
|
59
|
+
const warnings = [
|
|
60
|
+
{
|
|
61
|
+
regex: /prisma:warn We could not find your Prisma schema/,
|
|
62
|
+
message: `Prisma generate failed to find the default schema. Did you include it in config.additionalFiles? ${cliLink("Config docs", docs.config.prisma)}\nCustom schema paths require a postinstall script like this: \`prisma generate --schema=./custom/path/to/schema.prisma\``,
|
|
63
|
+
shouldFail: true,
|
|
64
|
+
},
|
|
65
|
+
];
|
|
66
|
+
const errorMessages = [];
|
|
67
|
+
const warningMessages = [];
|
|
68
|
+
let shouldFail = false;
|
|
69
|
+
for (const warning of warnings) {
|
|
70
|
+
const matches = logs.match(warning.regex);
|
|
71
|
+
if (!matches) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const message = getMessageFromTemplate(warning.message, matches.groups);
|
|
75
|
+
if (warning.shouldFail) {
|
|
76
|
+
shouldFail = true;
|
|
77
|
+
errorMessages.push(message);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
warningMessages.push(message);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (shouldFail) {
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
summary: "Build succeeded with critical warnings. Will not proceed",
|
|
87
|
+
warnings: warningMessages,
|
|
88
|
+
errors: errorMessages,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
ok: true,
|
|
93
|
+
warnings: warningMessages,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/deploy/logs.ts"],"names":[],"mappings":"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"}
|