eas-cli 16.9.0 → 16.10.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/README.md +97 -78
- package/build/build/android/prepareJob.js +1 -9
- package/build/build/context.d.ts +0 -1
- package/build/build/createContext.d.ts +1 -2
- package/build/build/createContext.js +1 -2
- package/build/build/ios/prepareJob.js +1 -9
- package/build/build/runBuildAndSubmit.d.ts +0 -1
- package/build/build/runBuildAndSubmit.js +0 -1
- package/build/build/types.d.ts +0 -1
- package/build/commandUtils/workflows.d.ts +20 -0
- package/build/commandUtils/workflows.js +21 -0
- package/build/commands/build/dev.js +4 -2
- package/build/commands/build/index.d.ts +0 -1
- package/build/commands/build/index.js +0 -6
- package/build/commands/build/inspect.js +0 -1
- package/build/commands/build/internal.js +0 -1
- package/build/commands/project/onboarding.js +0 -1
- package/build/commands/workflow/cancel.d.ts +13 -0
- package/build/commands/workflow/cancel.js +84 -0
- package/build/commands/workflow/runs.js +2 -17
- package/build/graphql/generated.d.ts +44 -11
- package/build/graphql/generated.js +6 -1
- package/build/graphql/mutations/WorkflowRunMutation.d.ts +3 -0
- package/build/graphql/mutations/WorkflowRunMutation.js +16 -0
- package/build/project/publish.js +0 -3
- package/oclif.manifest.json +23 -8
- package/package.json +2 -2
|
@@ -36,10 +36,7 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
36
36
|
? (0, customBuildConfig_1.getCustomBuildConfigPathForJob)(buildProfile.config)
|
|
37
37
|
: undefined;
|
|
38
38
|
let buildMode;
|
|
39
|
-
if (
|
|
40
|
-
buildMode = eas_build_job_1.BuildMode.REPACK;
|
|
41
|
-
}
|
|
42
|
-
else if (buildProfile.config) {
|
|
39
|
+
if (buildProfile.config) {
|
|
43
40
|
buildMode = eas_build_job_1.BuildMode.CUSTOM;
|
|
44
41
|
}
|
|
45
42
|
else {
|
|
@@ -94,11 +91,6 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
94
91
|
path: maybeCustomBuildConfigPath,
|
|
95
92
|
},
|
|
96
93
|
}),
|
|
97
|
-
...(ctx.repack && {
|
|
98
|
-
customBuildConfig: {
|
|
99
|
-
path: '__eas/repack.yml',
|
|
100
|
-
},
|
|
101
|
-
}),
|
|
102
94
|
loggerLevel: ctx.loggerLevel,
|
|
103
95
|
// Technically, these are unused, but let's include them here for type consistency.
|
|
104
96
|
// See: https://github.com/expo/eas-build/pull/454
|
package/build/build/context.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { ExpoGraphqlClient } from '../commandUtils/context/contextUtils/createGr
|
|
|
9
9
|
import { CustomBuildConfigMetadata } from '../project/customBuildConfig';
|
|
10
10
|
import { Actor } from '../user/User';
|
|
11
11
|
import { Client } from '../vcs/vcs';
|
|
12
|
-
export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials,
|
|
12
|
+
export declare function createBuildContextAsync<T extends Platform>({ buildProfileName, buildProfile, easJsonCliConfig, clearCache, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, isVerboseLoggingEnabled, env, }: {
|
|
13
13
|
buildProfileName: string;
|
|
14
14
|
buildProfile: BuildProfile<T>;
|
|
15
15
|
easJsonCliConfig: EasJson['cli'];
|
|
@@ -29,7 +29,6 @@ export declare function createBuildContextAsync<T extends Platform>({ buildProfi
|
|
|
29
29
|
customBuildConfigMetadata?: CustomBuildConfigMetadata;
|
|
30
30
|
buildLoggerLevel?: LoggerLevel;
|
|
31
31
|
freezeCredentials: boolean;
|
|
32
|
-
repack: boolean;
|
|
33
32
|
isVerboseLoggingEnabled: boolean;
|
|
34
33
|
env: Record<string, string>;
|
|
35
34
|
}): Promise<BuildContext<T>>;
|
|
@@ -16,7 +16,7 @@ const AnalyticsManager_1 = require("../analytics/AnalyticsManager");
|
|
|
16
16
|
const context_1 = require("../credentials/context");
|
|
17
17
|
const projectUtils_1 = require("../project/projectUtils");
|
|
18
18
|
const workflow_1 = require("../project/workflow");
|
|
19
|
-
async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials,
|
|
19
|
+
async function createBuildContextAsync({ buildProfileName, buildProfile, easJsonCliConfig, clearCache = false, localBuildOptions, nonInteractive, noWait, platform, projectDir, resourceClassFlag, message, actor, graphqlClient, analytics, vcsClient, getDynamicPrivateProjectConfigAsync, customBuildConfigMetadata, buildLoggerLevel, freezeCredentials, isVerboseLoggingEnabled, env, }) {
|
|
20
20
|
const { exp, projectId } = await getDynamicPrivateProjectConfigAsync({
|
|
21
21
|
env,
|
|
22
22
|
});
|
|
@@ -90,7 +90,6 @@ async function createBuildContextAsync({ buildProfileName, buildProfile, easJson
|
|
|
90
90
|
developmentClient,
|
|
91
91
|
requiredPackageManager,
|
|
92
92
|
loggerLevel: buildLoggerLevel,
|
|
93
|
-
repack,
|
|
94
93
|
isVerboseLoggingEnabled,
|
|
95
94
|
env,
|
|
96
95
|
};
|
|
@@ -27,10 +27,7 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
27
27
|
? (0, customBuildConfig_1.getCustomBuildConfigPathForJob)(buildProfile.config)
|
|
28
28
|
: undefined;
|
|
29
29
|
let buildMode;
|
|
30
|
-
if (
|
|
31
|
-
buildMode = eas_build_job_1.BuildMode.REPACK;
|
|
32
|
-
}
|
|
33
|
-
else if (buildProfile.config) {
|
|
30
|
+
if (buildProfile.config) {
|
|
34
31
|
buildMode = eas_build_job_1.BuildMode.CUSTOM;
|
|
35
32
|
}
|
|
36
33
|
else {
|
|
@@ -88,11 +85,6 @@ async function prepareJobAsync(ctx, jobData) {
|
|
|
88
85
|
path: maybeCustomBuildConfigPath,
|
|
89
86
|
},
|
|
90
87
|
}),
|
|
91
|
-
...(ctx.repack && {
|
|
92
|
-
customBuildConfig: {
|
|
93
|
-
path: '__eas/repack.yml',
|
|
94
|
-
},
|
|
95
|
-
}),
|
|
96
88
|
loggerLevel: ctx.loggerLevel,
|
|
97
89
|
// Technically, these are unused, but let's include them here for type consistency.
|
|
98
90
|
// See: https://github.com/expo/eas-build/pull/454
|
|
@@ -24,7 +24,6 @@ export interface BuildFlags {
|
|
|
24
24
|
message?: string;
|
|
25
25
|
buildLoggerLevel?: LoggerLevel;
|
|
26
26
|
freezeCredentials: boolean;
|
|
27
|
-
repack: boolean;
|
|
28
27
|
isVerboseLoggingEnabled?: boolean;
|
|
29
28
|
}
|
|
30
29
|
export declare function runBuildAndSubmitAsync({ graphqlClient, analytics, vcsClient, projectDir, flags, actor, getDynamicPrivateProjectConfigAsync, downloadSimBuildAutoConfirm, envOverride, }: {
|
|
@@ -237,7 +237,6 @@ async function prepareAndStartBuildAsync({ projectDir, flags, moreBuilds, buildP
|
|
|
237
237
|
customBuildConfigMetadata,
|
|
238
238
|
buildLoggerLevel: flags.buildLoggerLevel ?? (log_1.default.isDebug ? logger_1.LoggerLevel.DEBUG : undefined),
|
|
239
239
|
freezeCredentials: flags.freezeCredentials,
|
|
240
|
-
repack: flags.repack,
|
|
241
240
|
isVerboseLoggingEnabled: flags.isVerboseLoggingEnabled ?? false,
|
|
242
241
|
env,
|
|
243
242
|
});
|
package/build/build/types.d.ts
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WorkflowRunFragment } from '../graphql/generated';
|
|
2
|
+
export type WorkflowRunResult = {
|
|
3
|
+
id: string;
|
|
4
|
+
status: string;
|
|
5
|
+
gitCommitMessage: string | null;
|
|
6
|
+
gitCommitHash: string | null;
|
|
7
|
+
startedAt: string;
|
|
8
|
+
finishedAt: string;
|
|
9
|
+
workflowId: string;
|
|
10
|
+
workflowName: string | null;
|
|
11
|
+
workflowFileName: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function processWorkflowRuns(runs: WorkflowRunFragment[]): WorkflowRunResult[];
|
|
14
|
+
export type WorkflowResult = {
|
|
15
|
+
id: string;
|
|
16
|
+
name?: string | null | undefined;
|
|
17
|
+
fileName: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
updatedAt: string;
|
|
20
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processWorkflowRuns = void 0;
|
|
4
|
+
const generated_1 = require("../graphql/generated");
|
|
5
|
+
function processWorkflowRuns(runs) {
|
|
6
|
+
return runs.map(run => {
|
|
7
|
+
const finishedAt = run.status === generated_1.WorkflowRunStatus.InProgress ? null : run.updatedAt;
|
|
8
|
+
return {
|
|
9
|
+
id: run.id,
|
|
10
|
+
status: run.status,
|
|
11
|
+
gitCommitMessage: run.gitCommitMessage?.split('\n')[0] ?? null,
|
|
12
|
+
gitCommitHash: run.gitCommitHash ?? null,
|
|
13
|
+
startedAt: run.createdAt,
|
|
14
|
+
finishedAt,
|
|
15
|
+
workflowId: run.workflow.id,
|
|
16
|
+
workflowName: run.workflow.name ?? null,
|
|
17
|
+
workflowFileName: run.workflow.fileName,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
exports.processWorkflowRuns = processWorkflowRuns;
|
|
@@ -89,6 +89,7 @@ class BuildDev extends EasCommand_1.default {
|
|
|
89
89
|
projectId,
|
|
90
90
|
platform,
|
|
91
91
|
fingerprint,
|
|
92
|
+
profile: buildProfile.profileName,
|
|
92
93
|
});
|
|
93
94
|
if (builds.length !== 0) {
|
|
94
95
|
const build = builds[0];
|
|
@@ -107,6 +108,7 @@ class BuildDev extends EasCommand_1.default {
|
|
|
107
108
|
graphqlClient,
|
|
108
109
|
projectId,
|
|
109
110
|
platform,
|
|
111
|
+
profile: buildProfile.profileName,
|
|
110
112
|
});
|
|
111
113
|
if (previousBuildsForSelectedProfile.length > 0 &&
|
|
112
114
|
previousBuildsForSelectedProfile[0].metrics?.buildDuration) {
|
|
@@ -126,7 +128,6 @@ class BuildDev extends EasCommand_1.default {
|
|
|
126
128
|
json: false,
|
|
127
129
|
autoSubmit: false,
|
|
128
130
|
localBuildOptions: {},
|
|
129
|
-
repack: false,
|
|
130
131
|
profile: flags.profile ?? DEFAULT_EAS_BUILD_RUN_PROFILE_NAME,
|
|
131
132
|
},
|
|
132
133
|
actor,
|
|
@@ -224,7 +225,7 @@ class BuildDev extends EasCommand_1.default {
|
|
|
224
225
|
});
|
|
225
226
|
return buildProfile;
|
|
226
227
|
}
|
|
227
|
-
async getBuildsAsync({ graphqlClient, projectId, platform, fingerprint, }) {
|
|
228
|
+
async getBuildsAsync({ graphqlClient, projectId, platform, fingerprint, profile, }) {
|
|
228
229
|
return await BuildQuery_1.BuildQuery.viewBuildsOnAppAsync(graphqlClient, {
|
|
229
230
|
appId: projectId,
|
|
230
231
|
filter: {
|
|
@@ -234,6 +235,7 @@ class BuildDev extends EasCommand_1.default {
|
|
|
234
235
|
simulator: platform === eas_build_job_1.Platform.IOS ? true : undefined,
|
|
235
236
|
distribution: platform === eas_build_job_1.Platform.ANDROID ? generated_1.DistributionType.Internal : undefined,
|
|
236
237
|
developmentClient: true,
|
|
238
|
+
buildProfile: profile,
|
|
237
239
|
},
|
|
238
240
|
offset: 0,
|
|
239
241
|
limit: 1,
|
|
@@ -20,7 +20,6 @@ export default class Build extends EasCommand {
|
|
|
20
20
|
message: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
21
21
|
'build-logger-level': import("@oclif/core/lib/interfaces").OptionFlag<LoggerLevel | undefined>;
|
|
22
22
|
'freeze-credentials': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
23
|
-
repack: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
24
23
|
'verbose-logs': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
25
24
|
};
|
|
26
25
|
static contextDefinition: {
|
|
@@ -89,11 +89,6 @@ class Build extends EasCommand_1.default {
|
|
|
89
89
|
default: false,
|
|
90
90
|
description: 'Prevent the build from updating credentials in non-interactive mode',
|
|
91
91
|
}),
|
|
92
|
-
repack: core_1.Flags.boolean({
|
|
93
|
-
default: false,
|
|
94
|
-
hidden: true,
|
|
95
|
-
description: 'Use the golden dev client build repack flow as it works for onboarding',
|
|
96
|
-
}),
|
|
97
92
|
'verbose-logs': core_1.Flags.boolean({
|
|
98
93
|
default: false,
|
|
99
94
|
description: 'Use verbose logs for the build process',
|
|
@@ -187,7 +182,6 @@ class Build extends EasCommand_1.default {
|
|
|
187
182
|
buildLoggerLevel: flags['build-logger-level'],
|
|
188
183
|
freezeCredentials: flags['freeze-credentials'],
|
|
189
184
|
isVerboseLoggingEnabled: flags['verbose-logs'],
|
|
190
|
-
repack: flags.repack,
|
|
191
185
|
};
|
|
192
186
|
}
|
|
193
187
|
async ensurePlatformSelectedAsync(flags) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import EasCommand from '../../commandUtils/EasCommand';
|
|
2
|
+
export default class WorkflowRunCancel extends EasCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static strict: boolean;
|
|
5
|
+
static contextDefinition: {
|
|
6
|
+
loggedIn: import("../../commandUtils/context/LoggedInContextField").default;
|
|
7
|
+
projectId: import("../../commandUtils/context/ProjectIdContextField").ProjectIdContextField;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
'non-interactive': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
runAsync(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
5
|
+
const flags_1 = require("../../commandUtils/flags");
|
|
6
|
+
const workflows_1 = require("../../commandUtils/workflows");
|
|
7
|
+
const generated_1 = require("../../graphql/generated");
|
|
8
|
+
const WorkflowRunMutation_1 = require("../../graphql/mutations/WorkflowRunMutation");
|
|
9
|
+
const AppQuery_1 = require("../../graphql/queries/AppQuery");
|
|
10
|
+
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
11
|
+
const prompts_1 = require("../../prompts");
|
|
12
|
+
class WorkflowRunCancel extends EasCommand_1.default {
|
|
13
|
+
static description = 'Cancel one or more workflow runs. If no workflow run IDs are provided, you will be prompted to select IN_PROGRESS runs to cancel.';
|
|
14
|
+
static strict = false;
|
|
15
|
+
static contextDefinition = {
|
|
16
|
+
...this.ContextOptions.ProjectId,
|
|
17
|
+
...this.ContextOptions.LoggedIn,
|
|
18
|
+
};
|
|
19
|
+
static flags = {
|
|
20
|
+
...flags_1.EASNonInteractiveFlag,
|
|
21
|
+
};
|
|
22
|
+
async runAsync() {
|
|
23
|
+
const { argv } = await this.parse(WorkflowRunCancel);
|
|
24
|
+
let nonInteractive = false;
|
|
25
|
+
const workflowRunIds = new Set();
|
|
26
|
+
// Custom parsing of argv
|
|
27
|
+
const tokens = [...argv];
|
|
28
|
+
while (tokens.length > 0) {
|
|
29
|
+
const token = tokens.shift();
|
|
30
|
+
if (token === '--non-interactive') {
|
|
31
|
+
nonInteractive = true;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
else if (token) {
|
|
35
|
+
workflowRunIds.add(token);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const { projectId, loggedIn: { graphqlClient }, } = await this.getContextAsync(WorkflowRunCancel, {
|
|
39
|
+
nonInteractive,
|
|
40
|
+
});
|
|
41
|
+
if (workflowRunIds.size === 0) {
|
|
42
|
+
if (nonInteractive) {
|
|
43
|
+
throw new Error('Must supply workflow run IDs as arguments when in non-interactive mode');
|
|
44
|
+
}
|
|
45
|
+
// Run the workflow run list query and select runs to cancel
|
|
46
|
+
const queryResult = await AppQuery_1.AppQuery.byIdWorkflowRunsFilteredByStatusAsync(graphqlClient, projectId, generated_1.WorkflowRunStatus.InProgress, 50);
|
|
47
|
+
const runs = (0, workflows_1.processWorkflowRuns)(queryResult);
|
|
48
|
+
if (runs.length === 0) {
|
|
49
|
+
log_1.default.warn('No workflow runs to cancel');
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const answers = await (0, prompts_1.promptAsync)({
|
|
53
|
+
type: 'multiselect',
|
|
54
|
+
name: 'selectedRuns',
|
|
55
|
+
message: 'Select IN_PROGRESS workflow runs to cancel',
|
|
56
|
+
choices: runs.map(run => ({
|
|
57
|
+
title: `${run.id} - ${run.workflowFileName}, ${run.gitCommitMessage ?? ''}, ${run.startedAt}`,
|
|
58
|
+
value: run.id,
|
|
59
|
+
})),
|
|
60
|
+
});
|
|
61
|
+
answers.selectedRuns.forEach((id) => {
|
|
62
|
+
workflowRunIds.add(id);
|
|
63
|
+
});
|
|
64
|
+
if (workflowRunIds.size === 0) {
|
|
65
|
+
log_1.default.warn('No workflow runs to cancel');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
log_1.default.addNewLineIfNone();
|
|
70
|
+
for (const workflowRunId of workflowRunIds) {
|
|
71
|
+
try {
|
|
72
|
+
await WorkflowRunMutation_1.WorkflowRunMutation.cancelWorkflowRunAsync(graphqlClient, {
|
|
73
|
+
workflowRunId,
|
|
74
|
+
});
|
|
75
|
+
log_1.default.log(`Workflow run ${workflowRunId} has been canceled.`);
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
log_1.default.error(`Failed to cancel workflow run ${workflowRunId}: ${e}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
log_1.default.addNewLineIfNone();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.default = WorkflowRunCancel;
|
|
@@ -5,28 +5,13 @@ const core_1 = require("@oclif/core");
|
|
|
5
5
|
const EasCommand_1 = tslib_1.__importDefault(require("../../commandUtils/EasCommand"));
|
|
6
6
|
const flags_1 = require("../../commandUtils/flags");
|
|
7
7
|
const pagination_1 = require("../../commandUtils/pagination");
|
|
8
|
+
const workflows_1 = require("../../commandUtils/workflows");
|
|
8
9
|
const generated_1 = require("../../graphql/generated");
|
|
9
10
|
const AppQuery_1 = require("../../graphql/queries/AppQuery");
|
|
10
11
|
const WorkflowRunQuery_1 = require("../../graphql/queries/WorkflowRunQuery");
|
|
11
12
|
const log_1 = tslib_1.__importDefault(require("../../log"));
|
|
12
13
|
const formatFields_1 = tslib_1.__importDefault(require("../../utils/formatFields"));
|
|
13
14
|
const json_1 = require("../../utils/json");
|
|
14
|
-
function processWorkflowRuns(runs) {
|
|
15
|
-
return runs.map(run => {
|
|
16
|
-
const finishedAt = run.status === generated_1.WorkflowRunStatus.InProgress ? null : run.updatedAt;
|
|
17
|
-
return {
|
|
18
|
-
id: run.id,
|
|
19
|
-
status: run.status,
|
|
20
|
-
gitCommitMessage: run.gitCommitMessage ?? null,
|
|
21
|
-
gitCommitHash: run.gitCommitHash ?? null,
|
|
22
|
-
startedAt: run.createdAt,
|
|
23
|
-
finishedAt,
|
|
24
|
-
workflowId: run.workflow.id,
|
|
25
|
-
workflowName: run.workflow.name ?? null,
|
|
26
|
-
workflowFileName: run.workflow.fileName,
|
|
27
|
-
};
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
15
|
class WorkflowRunList extends EasCommand_1.default {
|
|
31
16
|
static description = 'list recent workflow runs for this project, with their IDs, statuses, and timestamps';
|
|
32
17
|
static flags = {
|
|
@@ -64,7 +49,7 @@ class WorkflowRunList extends EasCommand_1.default {
|
|
|
64
49
|
else {
|
|
65
50
|
runs = await AppQuery_1.AppQuery.byIdWorkflowRunsFilteredByStatusAsync(graphqlClient, projectId, status, limit);
|
|
66
51
|
}
|
|
67
|
-
const result = processWorkflowRuns(runs);
|
|
52
|
+
const result = (0, workflows_1.processWorkflowRuns)(runs);
|
|
68
53
|
if (flags.json) {
|
|
69
54
|
(0, json_1.printJsonOnlyOutput)(result);
|
|
70
55
|
return;
|
|
@@ -157,6 +157,7 @@ export type Account = {
|
|
|
157
157
|
/** Whether this account can enable SSO. */
|
|
158
158
|
canEnableSSO: Scalars['Boolean']['output'];
|
|
159
159
|
createdAt: Scalars['DateTime']['output'];
|
|
160
|
+
displayName?: Maybe<Scalars['String']['output']>;
|
|
160
161
|
/** Environment secrets for an account */
|
|
161
162
|
environmentSecrets: Array<EnvironmentSecret>;
|
|
162
163
|
/** Environment variables for an account */
|
|
@@ -542,6 +543,8 @@ export type AccountMutation = {
|
|
|
542
543
|
requestRefund?: Maybe<Scalars['Boolean']['output']>;
|
|
543
544
|
/** Revoke specified Permissions for Actor. Actor must already have at least one permission on the account. */
|
|
544
545
|
revokeActorPermissions: Account;
|
|
546
|
+
/** Set the display name for the account. */
|
|
547
|
+
setDisplayName: Account;
|
|
545
548
|
/** Require authorization to send push notifications for experiences owned by this account */
|
|
546
549
|
setPushSecurityEnabled: Account;
|
|
547
550
|
};
|
|
@@ -583,6 +586,10 @@ export type AccountMutationRevokeActorPermissionsArgs = {
|
|
|
583
586
|
actorID: Scalars['ID']['input'];
|
|
584
587
|
permissions?: InputMaybe<Array<InputMaybe<Permission>>>;
|
|
585
588
|
};
|
|
589
|
+
export type AccountMutationSetDisplayNameArgs = {
|
|
590
|
+
accountID: Scalars['ID']['input'];
|
|
591
|
+
displayName: Scalars['String']['input'];
|
|
592
|
+
};
|
|
586
593
|
export type AccountMutationSetPushSecurityEnabledArgs = {
|
|
587
594
|
accountID: Scalars['ID']['input'];
|
|
588
595
|
pushSecurityEnabled: Scalars['Boolean']['input'];
|
|
@@ -3910,8 +3917,6 @@ export type GitHubBuildInput = {
|
|
|
3910
3917
|
environment?: InputMaybe<EnvironmentVariableEnvironment>;
|
|
3911
3918
|
gitRef: Scalars['String']['input'];
|
|
3912
3919
|
platform: AppPlatform;
|
|
3913
|
-
/** Repack the golden dev client build instead of running full build process. Used for onboarding. Do not use outside of onboarding flow, as for now it's only created with this specific use case in mind. */
|
|
3914
|
-
repack?: InputMaybe<Scalars['Boolean']['input']>;
|
|
3915
3920
|
submitProfile?: InputMaybe<Scalars['String']['input']>;
|
|
3916
3921
|
};
|
|
3917
3922
|
export type GitHubBuildTrigger = {
|
|
@@ -5245,7 +5250,7 @@ export type RootMutation = {
|
|
|
5245
5250
|
webhook: WebhookMutation;
|
|
5246
5251
|
/** Mutations that modify a websiteNotification */
|
|
5247
5252
|
websiteNotifications: WebsiteNotificationMutation;
|
|
5248
|
-
|
|
5253
|
+
workflowJobApproval: WorkflowJobApprovalMutation;
|
|
5249
5254
|
workflowRevision: WorkflowRevisionMutation;
|
|
5250
5255
|
workflowRun: WorkflowRunMutation;
|
|
5251
5256
|
};
|
|
@@ -6220,7 +6225,7 @@ export type UpdateRollBackToEmbeddedGroup = {
|
|
|
6220
6225
|
web?: InputMaybe<Scalars['Boolean']['input']>;
|
|
6221
6226
|
};
|
|
6222
6227
|
export type UpdateRolloutInfo = {
|
|
6223
|
-
rolloutControlUpdateId
|
|
6228
|
+
rolloutControlUpdateId?: InputMaybe<Scalars['ID']['input']>;
|
|
6224
6229
|
rolloutPercentage: Scalars['Int']['input'];
|
|
6225
6230
|
};
|
|
6226
6231
|
export type UpdateRolloutInfoGroup = {
|
|
@@ -7317,6 +7322,7 @@ export type WorkflowArtifact = {
|
|
|
7317
7322
|
};
|
|
7318
7323
|
export type WorkflowJob = {
|
|
7319
7324
|
__typename?: 'WorkflowJob';
|
|
7325
|
+
approvals: Array<WorkflowJobApproval>;
|
|
7320
7326
|
createdAt: Scalars['DateTime']['output'];
|
|
7321
7327
|
credentialsAppleDeviceRegistrationRequest?: Maybe<AppleDeviceRegistrationRequest>;
|
|
7322
7328
|
errors: Array<WorkflowJobError>;
|
|
@@ -7333,18 +7339,28 @@ export type WorkflowJob = {
|
|
|
7333
7339
|
updatedAt: Scalars['DateTime']['output'];
|
|
7334
7340
|
workflowRun: WorkflowRun;
|
|
7335
7341
|
};
|
|
7342
|
+
export type WorkflowJobApproval = {
|
|
7343
|
+
__typename?: 'WorkflowJobApproval';
|
|
7344
|
+
createdAt: Scalars['DateTime']['output'];
|
|
7345
|
+
decision: WorkflowJobReviewDecision;
|
|
7346
|
+
id: Scalars['ID']['output'];
|
|
7347
|
+
updatedAt: Scalars['DateTime']['output'];
|
|
7348
|
+
userActor?: Maybe<UserActor>;
|
|
7349
|
+
workflowJob: WorkflowJob;
|
|
7350
|
+
};
|
|
7351
|
+
export type WorkflowJobApprovalMutation = {
|
|
7352
|
+
__typename?: 'WorkflowJobApprovalMutation';
|
|
7353
|
+
setWorkflowJobApprovalDecision: WorkflowJobApproval;
|
|
7354
|
+
};
|
|
7355
|
+
export type WorkflowJobApprovalMutationSetWorkflowJobApprovalDecisionArgs = {
|
|
7356
|
+
decision: WorkflowJobReviewDecision;
|
|
7357
|
+
workflowJobId: Scalars['ID']['input'];
|
|
7358
|
+
};
|
|
7336
7359
|
export type WorkflowJobError = {
|
|
7337
7360
|
__typename?: 'WorkflowJobError';
|
|
7338
7361
|
message: Scalars['String']['output'];
|
|
7339
7362
|
title: Scalars['String']['output'];
|
|
7340
7363
|
};
|
|
7341
|
-
export type WorkflowJobMutation = {
|
|
7342
|
-
__typename?: 'WorkflowJobMutation';
|
|
7343
|
-
approveWorkflowJob: Scalars['ID']['output'];
|
|
7344
|
-
};
|
|
7345
|
-
export type WorkflowJobMutationApproveWorkflowJobArgs = {
|
|
7346
|
-
workflowJobId: Scalars['ID']['input'];
|
|
7347
|
-
};
|
|
7348
7364
|
export type WorkflowJobQuery = {
|
|
7349
7365
|
__typename?: 'WorkflowJobQuery';
|
|
7350
7366
|
byId: WorkflowJob;
|
|
@@ -7352,6 +7368,10 @@ export type WorkflowJobQuery = {
|
|
|
7352
7368
|
export type WorkflowJobQueryByIdArgs = {
|
|
7353
7369
|
workflowJobId: Scalars['ID']['input'];
|
|
7354
7370
|
};
|
|
7371
|
+
export declare enum WorkflowJobReviewDecision {
|
|
7372
|
+
Approved = "APPROVED",
|
|
7373
|
+
Rejected = "REJECTED"
|
|
7374
|
+
}
|
|
7355
7375
|
export declare enum WorkflowJobStatus {
|
|
7356
7376
|
ActionRequired = "ACTION_REQUIRED",
|
|
7357
7377
|
Canceled = "CANCELED",
|
|
@@ -12450,6 +12470,19 @@ export type CreateWorkflowRunMutation = {
|
|
|
12450
12470
|
};
|
|
12451
12471
|
};
|
|
12452
12472
|
};
|
|
12473
|
+
export type CancelWorkflowRunMutationVariables = Exact<{
|
|
12474
|
+
workflowRunId: Scalars['ID']['input'];
|
|
12475
|
+
}>;
|
|
12476
|
+
export type CancelWorkflowRunMutation = {
|
|
12477
|
+
__typename?: 'RootMutation';
|
|
12478
|
+
workflowRun: {
|
|
12479
|
+
__typename?: 'WorkflowRunMutation';
|
|
12480
|
+
cancelWorkflowRun: {
|
|
12481
|
+
__typename?: 'WorkflowRun';
|
|
12482
|
+
id: string;
|
|
12483
|
+
};
|
|
12484
|
+
};
|
|
12485
|
+
};
|
|
12453
12486
|
export type AppByIdQueryVariables = Exact<{
|
|
12454
12487
|
appId: Scalars['String']['input'];
|
|
12455
12488
|
}>;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.Experiment = exports.EnvironmentVariableVisibility = exports.EnvironmentVariableScope = exports.EnvironmentVariableEnvironment = exports.EnvironmentSecretType = exports.EntityTypeName = exports.EasTotalPlanEnablementUnit = exports.EasServiceMetric = exports.EasService = exports.EasBuildWaiverType = exports.EasBuildDeprecationInfoType = exports.EasBuildBillingResourceClass = exports.DistributionType = exports.CustomDomainStatus = exports.CustomDomainDnsRecordType = exports.CrashSampleFor = exports.ContinentCode = exports.BuildWorkflow = exports.BuildTrigger = exports.BuildStatus = exports.BuildRetryDisabledReason = exports.BuildResourceClass = exports.BuildPriority = exports.BuildPhase = exports.BuildMode = exports.BuildLimitThresholdExceededMetadataType = exports.BuildIosEnterpriseProvisioning = exports.BuildCredentialsSource = exports.BackgroundJobState = exports.BackgroundJobResultType = exports.AuthProviderIdentifier = exports.AuthProtocolType = exports.AuditLogsExportFormat = exports.AssetMetadataStatus = exports.AssetMapSourceType = exports.AppsFilter = exports.AppleTeamType = exports.AppleDeviceClass = exports.AppUploadSessionType = exports.AppStoreConnectUserRole = exports.AppSort = exports.AppPrivacy = exports.AppPlatform = exports.AppInternalDistributionBuildPrivacy = exports.AndroidKeystoreType = exports.AndroidFcmVersion = exports.AndroidBuildType = exports.ActivityTimelineProjectActivityType = exports.AccountUploadSessionType = exports.AccountAppsSortByField = void 0;
|
|
10
10
|
exports.SubmissionStatus = exports.SubmissionPriority = exports.SubmissionArchiveSourceType = exports.SubmissionAndroidTrack = exports.SubmissionAndroidReleaseStatus = exports.SubmissionAndroidArchiveType = exports.StatuspageServiceStatus = exports.StatuspageServiceName = exports.StatuspageIncidentStatus = exports.StatuspageIncidentImpact = exports.StandardOffer = exports.SecondFactorMethod = exports.Role = exports.ResponseType = exports.ResponseStatusType = exports.ResponseCacheStatus = exports.ResourceClassExperiment = exports.RequestsOrderByField = exports.RequestsOrderByDirection = exports.RequestMethod = exports.ProjectArchiveSourceType = exports.Permission = exports.Order = exports.OnboardingEnvironment = exports.OnboardingDeviceType = exports.OfferType = exports.NotificationType = exports.NotificationEvent = exports.MailchimpTag = exports.MailchimpAudience = exports.LocalBuildArchiveSourceType = exports.JobRunStatus = exports.JobRunPriority = exports.IosSchemeBuildConfiguration = exports.IosManagedBuildType = exports.IosDistributionType = exports.IosBuildType = exports.InvoiceDiscountType = exports.InsightsFilterType = exports.GitHubJobRunTriggerType = exports.GitHubJobRunTriggerRunStatus = exports.GitHubJobRunJobType = exports.GitHubBuildTriggerType = exports.GitHubBuildTriggerRunStatus = exports.GitHubBuildTriggerExecutionBehavior = exports.GitHubAppInstallationStatus = exports.GitHubAppInstallationAccountType = exports.GitHubAppEnvironment = exports.FingerprintSourceType = exports.Feature = void 0;
|
|
11
|
-
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = void 0;
|
|
11
|
+
exports.WorkflowRunTriggerEventType = exports.WorkflowRunStatus = exports.WorkflowProjectSourceType = exports.WorkflowJobType = exports.WorkflowJobStatus = exports.WorkflowJobReviewDecision = exports.WorkerLoggerLevel = exports.WorkerDeploymentLogLevel = exports.WorkerDeploymentCrashKind = exports.WebhookType = exports.UserEntityTypeName = exports.UserAgentPlatform = exports.UserAgentOs = exports.UserAgentBrowser = exports.UsageMetricsGranularity = exports.UsageMetricType = exports.UploadSessionType = exports.TargetEntityMutationType = void 0;
|
|
12
12
|
var AccountAppsSortByField;
|
|
13
13
|
(function (AccountAppsSortByField) {
|
|
14
14
|
AccountAppsSortByField["LatestActivityTime"] = "LATEST_ACTIVITY_TIME";
|
|
@@ -862,6 +862,11 @@ var WorkerLoggerLevel;
|
|
|
862
862
|
WorkerLoggerLevel["Trace"] = "TRACE";
|
|
863
863
|
WorkerLoggerLevel["Warn"] = "WARN";
|
|
864
864
|
})(WorkerLoggerLevel || (exports.WorkerLoggerLevel = WorkerLoggerLevel = {}));
|
|
865
|
+
var WorkflowJobReviewDecision;
|
|
866
|
+
(function (WorkflowJobReviewDecision) {
|
|
867
|
+
WorkflowJobReviewDecision["Approved"] = "APPROVED";
|
|
868
|
+
WorkflowJobReviewDecision["Rejected"] = "REJECTED";
|
|
869
|
+
})(WorkflowJobReviewDecision || (exports.WorkflowJobReviewDecision = WorkflowJobReviewDecision = {}));
|
|
865
870
|
var WorkflowJobStatus;
|
|
866
871
|
(function (WorkflowJobStatus) {
|
|
867
872
|
WorkflowJobStatus["ActionRequired"] = "ACTION_REQUIRED";
|
|
@@ -33,4 +33,20 @@ var WorkflowRunMutation;
|
|
|
33
33
|
return { id: data.workflowRun.createWorkflowRun.id };
|
|
34
34
|
}
|
|
35
35
|
WorkflowRunMutation.createWorkflowRunAsync = createWorkflowRunAsync;
|
|
36
|
+
async function cancelWorkflowRunAsync(graphqlClient, { workflowRunId, }) {
|
|
37
|
+
await (0, client_1.withErrorHandlingAsync)(graphqlClient
|
|
38
|
+
.mutation((0, graphql_tag_1.default) `
|
|
39
|
+
mutation CancelWorkflowRun($workflowRunId: ID!) {
|
|
40
|
+
workflowRun {
|
|
41
|
+
cancelWorkflowRun(workflowRunId: $workflowRunId) {
|
|
42
|
+
id
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`, {
|
|
47
|
+
workflowRunId,
|
|
48
|
+
})
|
|
49
|
+
.toPromise());
|
|
50
|
+
}
|
|
51
|
+
WorkflowRunMutation.cancelWorkflowRunAsync = cancelWorkflowRunAsync;
|
|
36
52
|
})(WorkflowRunMutation || (exports.WorkflowRunMutation = WorkflowRunMutation = {}));
|
package/build/project/publish.js
CHANGED
|
@@ -651,9 +651,6 @@ async function getUpdateRolloutInfoGroupAsync(graphqlClient, { appId, branchName
|
|
|
651
651
|
runtimeVersion,
|
|
652
652
|
platform: exports.updatePublishPlatformToAppPlatform[platform],
|
|
653
653
|
});
|
|
654
|
-
if (!updateIdForPlatform) {
|
|
655
|
-
throw new Error(`No updates on branch ${branchName} for platform ${platform} and runtimeVersion ${runtimeVersion} to roll out from.`);
|
|
656
|
-
}
|
|
657
654
|
return [platform, { rolloutPercentage, rolloutControlUpdateId: updateIdForPlatform }];
|
|
658
655
|
})));
|
|
659
656
|
}
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "16.
|
|
2
|
+
"version": "16.10.1",
|
|
3
3
|
"commands": {
|
|
4
4
|
"analytics": {
|
|
5
5
|
"id": "analytics",
|
|
@@ -913,13 +913,6 @@
|
|
|
913
913
|
"description": "Prevent the build from updating credentials in non-interactive mode",
|
|
914
914
|
"allowNo": false
|
|
915
915
|
},
|
|
916
|
-
"repack": {
|
|
917
|
-
"name": "repack",
|
|
918
|
-
"type": "boolean",
|
|
919
|
-
"description": "Use the golden dev client build repack flow as it works for onboarding",
|
|
920
|
-
"hidden": true,
|
|
921
|
-
"allowNo": false
|
|
922
|
-
},
|
|
923
916
|
"verbose-logs": {
|
|
924
917
|
"name": "verbose-logs",
|
|
925
918
|
"type": "boolean",
|
|
@@ -4156,6 +4149,28 @@
|
|
|
4156
4149
|
"loggedIn": {}
|
|
4157
4150
|
}
|
|
4158
4151
|
},
|
|
4152
|
+
"workflow:cancel": {
|
|
4153
|
+
"id": "workflow:cancel",
|
|
4154
|
+
"description": "Cancel one or more workflow runs. If no workflow run IDs are provided, you will be prompted to select IN_PROGRESS runs to cancel.",
|
|
4155
|
+
"strict": false,
|
|
4156
|
+
"pluginName": "eas-cli",
|
|
4157
|
+
"pluginAlias": "eas-cli",
|
|
4158
|
+
"pluginType": "core",
|
|
4159
|
+
"aliases": [],
|
|
4160
|
+
"flags": {
|
|
4161
|
+
"non-interactive": {
|
|
4162
|
+
"name": "non-interactive",
|
|
4163
|
+
"type": "boolean",
|
|
4164
|
+
"description": "Run the command in non-interactive mode.",
|
|
4165
|
+
"allowNo": false
|
|
4166
|
+
}
|
|
4167
|
+
},
|
|
4168
|
+
"args": {},
|
|
4169
|
+
"contextDefinition": {
|
|
4170
|
+
"projectId": {},
|
|
4171
|
+
"loggedIn": {}
|
|
4172
|
+
}
|
|
4173
|
+
},
|
|
4159
4174
|
"workflow:create": {
|
|
4160
4175
|
"id": "workflow:create",
|
|
4161
4176
|
"description": "create a new workflow configuration YAML file",
|