Skip to content

Commit 7cc05bc

Browse files
committed
Show local build hint for failed deployments when Depot is down
1 parent 73c4b4e commit 7cc05bc

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

packages/cli-v3/src/apiClient.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import {
2222
PromoteDeploymentResponseBody,
2323
StartDeploymentIndexingRequestBody,
2424
StartDeploymentIndexingResponseBody,
25-
TaskRunExecution,
2625
TriggerTaskRequestBody,
2726
TriggerTaskResponse,
2827
UpsertBranchRequestBody,
@@ -38,6 +37,7 @@ import {
3837
GetJWTResponse,
3938
ApiBranchListResponseBody,
4039
GenerateRegistryCredentialsResponseBody,
40+
RemoteBuildProviderStatusResponseBody,
4141
} from "@trigger.dev/core/v3";
4242
import {
4343
WorkloadDebugLogRequestBody,
@@ -52,6 +52,7 @@ import { ApiResult, wrapZodFetch, zodfetchSSE } from "@trigger.dev/core/v3/zodfe
5252
import { EventSource } from "eventsource";
5353
import { z } from "zod";
5454
import { logger } from "./utilities/logger.js";
55+
import { VERSION } from "./version.js";
5556

5657
export class CliApiClient {
5758
private engineURL: string;
@@ -328,6 +329,21 @@ export class CliApiClient {
328329
);
329330
}
330331

332+
async getRemoteBuildProviderStatus() {
333+
return wrapZodFetch(
334+
RemoteBuildProviderStatusResponseBody,
335+
`${this.apiURL}/api/v1/remote-build-provider-status`,
336+
{
337+
method: "GET",
338+
headers: {
339+
...this.getHeaders(),
340+
// probably a good idea to add this to the other requests too
341+
"x-trigger-cli-version": VERSION,
342+
},
343+
}
344+
);
345+
}
346+
331347
async generateRegistryCredentials(deploymentId: string) {
332348
if (!this.accessToken) {
333349
throw new Error("generateRegistryCredentials: No access token");

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@ import {
2828
printWarnings,
2929
saveLogs,
3030
} from "../deploy/logs.js";
31-
import { chalkError, cliLink, isLinksSupported, prettyError } from "../utilities/cliOutput.js";
31+
import {
32+
chalkError,
33+
cliLink,
34+
isLinksSupported,
35+
prettyError,
36+
prettyWarning,
37+
} from "../utilities/cliOutput.js";
3238
import { loadDotEnvVars } from "../utilities/dotEnv.js";
3339
import { isDirectory } from "../utilities/fileSystem.js";
3440
import { setGithubActionsOutputAndEnvVars } from "../utilities/githubActions.js";
@@ -458,6 +464,17 @@ async function _deployCommand(dir: string, options: DeployCommandOptions) {
458464

459465
const warnings = checkLogsForWarnings(buildResult.logs);
460466

467+
const canShowLocalBuildHint = !isLocalBuild && !process.env.TRIGGER_LOCAL_BUILD_HINT_DISABLED;
468+
const buildFailed = !warnings.ok || !buildResult.ok;
469+
470+
if (buildFailed && canShowLocalBuildHint) {
471+
const providerStatus = await projectClient.client.getRemoteBuildProviderStatus();
472+
473+
if (providerStatus.success && providerStatus.data.status === "degraded") {
474+
prettyWarning(providerStatus.data.message + "\n");
475+
}
476+
}
477+
461478
if (!warnings.ok) {
462479
await failDeploy(
463480
projectClient.client,

0 commit comments

Comments
 (0)