@salesforce/plugin-devops-center 0.1.0-beta.3 → 1.0.0-beta.2
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 +25 -22
- package/lib/commands/project/deploy/pipeline/quick.d.ts +23 -0
- package/lib/commands/project/deploy/pipeline/quick.js +45 -0
- package/lib/commands/project/deploy/pipeline/quick.js.map +1 -0
- package/lib/commands/{deploy → project/deploy}/pipeline/report.d.ts +2 -2
- package/lib/commands/{deploy → project/deploy}/pipeline/report.js +2 -2
- package/lib/commands/project/deploy/pipeline/report.js.map +1 -0
- package/lib/commands/{deploy → project/deploy}/pipeline/resume.d.ts +3 -3
- package/lib/commands/{deploy → project/deploy}/pipeline/resume.js +3 -3
- package/lib/commands/project/deploy/pipeline/resume.js.map +1 -0
- package/lib/commands/{deploy/pipeline.d.ts → project/deploy/pipeline/start.d.ts} +6 -4
- package/lib/commands/{deploy/pipeline.js → project/deploy/pipeline/start.js} +6 -5
- package/lib/commands/project/deploy/pipeline/start.js.map +1 -0
- package/lib/commands/project/deploy/pipeline/validate.d.ts +19 -0
- package/lib/commands/project/deploy/pipeline/validate.js +37 -0
- package/lib/commands/project/deploy/pipeline/validate.js.map +1 -0
- package/lib/common/base/abstractAsyncOperation.d.ts +42 -0
- package/lib/common/base/abstractAsyncOperation.js +94 -0
- package/lib/common/base/abstractAsyncOperation.js.map +1 -0
- package/lib/common/base/abstractPromote.d.ts +8 -16
- package/lib/common/base/abstractPromote.js +19 -66
- package/lib/common/base/abstractPromote.js.map +1 -1
- package/lib/common/base/abstractQuick.d.ts +59 -0
- package/lib/common/base/abstractQuick.js +111 -0
- package/lib/common/base/abstractQuick.js.map +1 -0
- package/lib/common/base/abstractResume.d.ts +7 -13
- package/lib/common/base/abstractResume.js +9 -32
- package/lib/common/base/abstractResume.js.map +1 -1
- package/lib/common/constants.d.ts +2 -1
- package/lib/common/constants.js +1 -0
- package/lib/common/constants.js.map +1 -1
- package/lib/common/flags/flags.d.ts +5 -0
- package/lib/common/flags/flags.js +14 -6
- package/lib/common/flags/flags.js.map +1 -1
- package/lib/common/index.d.ts +1 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/outputColumns.d.ts +1 -0
- package/lib/common/outputColumns.js +2 -1
- package/lib/common/outputColumns.js.map +1 -1
- package/lib/common/outputService/aorOutputService.js +12 -6
- package/lib/common/outputService/aorOutputService.js.map +1 -1
- package/lib/common/outputService/deployCommandOutputService.d.ts +1 -1
- package/lib/common/outputService/deployCommandOutputService.js +2 -2
- package/lib/common/outputService/deployCommandOutputService.js.map +1 -1
- package/lib/common/outputService/deploySummaryBuilder.d.ts +13 -1
- package/lib/common/outputService/deploySummaryBuilder.js +64 -12
- package/lib/common/outputService/deploySummaryBuilder.js.map +1 -1
- package/lib/common/outputService/outputServiceFactory.d.ts +11 -5
- package/lib/common/outputService/outputServiceFactory.js +8 -2
- package/lib/common/outputService/outputServiceFactory.js.map +1 -1
- package/lib/common/outputService/promoteOutputService.d.ts +0 -6
- package/lib/common/outputService/promoteOutputService.js +0 -11
- package/lib/common/outputService/promoteOutputService.js.map +1 -1
- package/lib/common/outputService/reportOutputService.js +1 -1
- package/lib/common/outputService/reportOutputService.js.map +1 -1
- package/lib/common/outputService/resumeCommandOutputService.d.ts +7 -4
- package/lib/common/outputService/resumeCommandOutputService.js +8 -4
- package/lib/common/outputService/resumeCommandOutputService.js.map +1 -1
- package/lib/common/outputService/resumeOutputService.d.ts +7 -0
- package/lib/common/outputService/resumeOutputService.js +14 -0
- package/lib/common/outputService/resumeOutputService.js.map +1 -1
- package/lib/common/selectors/deployComponentsSelector.d.ts +1 -0
- package/lib/common/selectors/deployComponentsSelector.js +9 -1
- package/lib/common/selectors/deployComponentsSelector.js.map +1 -1
- package/lib/common/selectors/deployProgressSummarySelector.js +1 -1
- package/lib/common/selectors/deploymentResultsSelector.d.ts +19 -1
- package/lib/common/selectors/deploymentResultsSelector.js +29 -1
- package/lib/common/selectors/deploymentResultsSelector.js.map +1 -1
- package/lib/common/selectors/environmentSelector.d.ts +1 -1
- package/lib/common/selectors/environmentSelector.js +1 -1
- package/lib/common/selectors/pipelineStageSelector.d.ts +5 -0
- package/lib/common/selectors/pipelineStageSelector.js +13 -1
- package/lib/common/selectors/pipelineStageSelector.js.map +1 -1
- package/lib/common/selectors/validateDeploySelector.d.ts +6 -0
- package/lib/common/selectors/validateDeploySelector.js +22 -0
- package/lib/common/selectors/validateDeploySelector.js.map +1 -0
- package/lib/common/types.d.ts +11 -5
- package/lib/common/types.js +0 -6
- package/lib/common/types.js.map +1 -1
- package/lib/common/utils.d.ts +7 -1
- package/lib/common/utils.js +19 -6
- package/lib/common/utils.js.map +1 -1
- package/lib/streamer/processors/asyncOpStream.js +2 -1
- package/lib/streamer/processors/asyncOpStream.js.map +1 -1
- package/messages/commonFlags.md +6 -6
- package/messages/config.md +1 -1
- package/messages/deploy.output.md +18 -2
- package/messages/project.deploy.pipeline.quick.md +45 -0
- package/messages/{deploy.pipeline.report.md → project.deploy.pipeline.report.md} +3 -3
- package/messages/{deploy.pipeline.resume.md → project.deploy.pipeline.resume.md} +1 -5
- package/messages/{deploy.pipeline.md → project.deploy.pipeline.start.md} +5 -1
- package/messages/project.deploy.pipeline.validate.md +17 -0
- package/messages/promoteFlags.md +4 -4
- package/oclif.manifest.json +296 -67
- package/package.json +221 -110
- package/schemas/{deploy-pipeline-resume.json → project-deploy-pipeline-quick.json} +3 -3
- package/schemas/{deploy-pipeline.json → project-deploy-pipeline-resume.json} +3 -3
- package/schemas/project-deploy-pipeline-start.json +25 -0
- package/schemas/project-deploy-pipeline-validate.json +25 -0
- package/lib/commands/deploy/pipeline/report.js.map +0 -1
- package/lib/commands/deploy/pipeline/resume.js.map +0 -1
- package/lib/commands/deploy/pipeline.js.map +0 -1
- /package/schemas/{deploy-pipeline-report.json → project-deploy-pipeline-report.json} +0 -0
|
@@ -1,26 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PromoteCommand = void 0;
|
|
4
|
-
/*
|
|
5
|
-
* Copyright (c) 2023, salesforce.com, inc.
|
|
6
|
-
* All rights reserved.
|
|
7
|
-
* Licensed under the BSD 3-Clause license.
|
|
8
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
|
-
*/
|
|
10
|
-
const core_1 = require("@salesforce/core");
|
|
11
|
-
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
12
|
-
const deployPipelineCache_1 = require("../deployPipelineCache");
|
|
13
|
-
const asyncOpStream_1 = require("../../streamer/processors/asyncOpStream");
|
|
14
4
|
const __1 = require("..");
|
|
15
5
|
const flags_1 = require("../flags/flags");
|
|
16
6
|
const promoteFlags_1 = require("../flags/promote/promoteFlags");
|
|
17
7
|
const constants_1 = require("../constants");
|
|
18
|
-
const types_1 = require("../types");
|
|
19
|
-
const utils_1 = require("../utils");
|
|
20
8
|
const outputService_1 = require("../outputService");
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
class PromoteCommand extends
|
|
9
|
+
const utils_1 = require("../utils");
|
|
10
|
+
const abstractAsyncOperation_1 = require("./abstractAsyncOperation");
|
|
11
|
+
class PromoteCommand extends abstractAsyncOperation_1.AsyncCommand {
|
|
24
12
|
constructor() {
|
|
25
13
|
super(...arguments);
|
|
26
14
|
this.numRetries409 = 50; // this is the number of times we retry if we get a http-409-Conflict response
|
|
@@ -34,50 +22,26 @@ class PromoteCommand extends sf_plugins_core_1.SfCommand {
|
|
|
34
22
|
});
|
|
35
23
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
36
24
|
this.flags = flags;
|
|
37
|
-
this.
|
|
25
|
+
this.targetOrg = this.flags['devops-center-username'];
|
|
26
|
+
this.setOutputService(new outputService_1.OutputServiceFactory().forDeployment(this.flags, this.targetOrg.getConnection()));
|
|
38
27
|
}
|
|
39
28
|
async executePromotion() {
|
|
40
29
|
(0, __1.validateTestFlags)(this.flags['test-level'], this.flags.tests);
|
|
41
|
-
|
|
42
|
-
this.targetStage = await (0, __1.fetchAndValidatePipelineStage)(doceOrg, this.flags['devops-center-project-name'], this.flags['branch-name']);
|
|
30
|
+
this.targetStage = await (0, __1.fetchAndValidatePipelineStage)(this.targetOrg, this.flags['devops-center-project-name'], this.flags['branch-name']);
|
|
43
31
|
this.sourceStageId = this.getSourceStageId();
|
|
44
|
-
|
|
45
|
-
this.
|
|
46
|
-
this.outputService.printAorId();
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/await-thenable
|
|
48
|
-
await this.outputService.printOpSummary();
|
|
49
|
-
await deployPipelineCache_1.DeployPipelineCache.set(asyncOperationId, {});
|
|
50
|
-
if (this.flags.async) {
|
|
51
|
-
return {
|
|
52
|
-
jobId: asyncOperationId,
|
|
53
|
-
status: types_1.AsyncOperationStatus.InProgress,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
const doceMonitor = new asyncOpStream_1.default(doceOrg, this.flags.wait, asyncOperationId, this.outputService);
|
|
57
|
-
await doceMonitor.monitor();
|
|
58
|
-
if (this.outputService.getStatus() === types_1.AsyncOperationStatus.Completed) {
|
|
59
|
-
await this.outputService.displayEndResults();
|
|
60
|
-
}
|
|
61
|
-
// get final state of the async job
|
|
62
|
-
const asyncJob = await (0, utils_1.fetchAsyncOperationResult)(doceOrg.getConnection(), asyncOperationId);
|
|
63
|
-
return {
|
|
64
|
-
jobId: asyncOperationId,
|
|
65
|
-
status: asyncJob.sf_devops__Status__c,
|
|
66
|
-
message: asyncJob.sf_devops__Message__c,
|
|
67
|
-
errorDetails: asyncJob.sf_devops__Error_Details__c,
|
|
68
|
-
};
|
|
32
|
+
this.setAsyncOperationId(await this.requestPromotionFlow());
|
|
33
|
+
return this.monitorOperation(this.flags.async, this.flags.wait);
|
|
69
34
|
}
|
|
70
35
|
/**
|
|
71
36
|
*
|
|
72
37
|
* Sends an Http request to the target org to initiate a promotion.
|
|
73
38
|
*
|
|
74
|
-
* @param doceOrg target org.
|
|
75
39
|
* @returns Aor Id of promote operation.
|
|
76
40
|
*/
|
|
77
|
-
async requestPromotionFlow(
|
|
41
|
+
async requestPromotionFlow() {
|
|
78
42
|
let spinnerStarted = false;
|
|
79
43
|
try {
|
|
80
|
-
return await this.requestPromotion(
|
|
44
|
+
return await this.requestPromotion();
|
|
81
45
|
}
|
|
82
46
|
catch (error) {
|
|
83
47
|
const err = error;
|
|
@@ -85,7 +49,7 @@ class PromoteCommand extends sf_plugins_core_1.SfCommand {
|
|
|
85
49
|
if (err.errorCode === constants_1.HTTP_CONFLICT_CODE) {
|
|
86
50
|
this.spinner.start('Synchronization of source control system events in progress');
|
|
87
51
|
spinnerStarted = true;
|
|
88
|
-
return await this.retryRequestPromotion(
|
|
52
|
+
return await this.retryRequestPromotion(this.numRetries409);
|
|
89
53
|
}
|
|
90
54
|
throw error;
|
|
91
55
|
}
|
|
@@ -100,19 +64,20 @@ class PromoteCommand extends sf_plugins_core_1.SfCommand {
|
|
|
100
64
|
* If it gets a 409/Conflict it will retry till the request successes,
|
|
101
65
|
* gets a differenct error or run out of retry attempts.
|
|
102
66
|
*
|
|
103
|
-
* @param doceOrg target org.
|
|
104
67
|
* @param numRetries Amount of remaining retry attempts.
|
|
105
68
|
* @returns Aor Id of promote operation
|
|
106
69
|
*/
|
|
107
|
-
async retryRequestPromotion(
|
|
70
|
+
async retryRequestPromotion(numRetries) {
|
|
108
71
|
try {
|
|
109
|
-
|
|
72
|
+
// Sleep 2 seconds before requesting promotion again.
|
|
73
|
+
await (0, utils_1.sleep)(2000);
|
|
74
|
+
return await this.requestPromotion();
|
|
110
75
|
}
|
|
111
76
|
catch (error) {
|
|
112
77
|
const err = error;
|
|
113
78
|
// if we still get a 409 error and haven't run out of retry attempts then retry again
|
|
114
79
|
if (err.errorCode === constants_1.HTTP_CONFLICT_CODE && numRetries > 1) {
|
|
115
|
-
return this.retryRequestPromotion(
|
|
80
|
+
return this.retryRequestPromotion(numRetries - 1);
|
|
116
81
|
}
|
|
117
82
|
throw error;
|
|
118
83
|
}
|
|
@@ -120,20 +85,7 @@ class PromoteCommand extends sf_plugins_core_1.SfCommand {
|
|
|
120
85
|
getTargetStage() {
|
|
121
86
|
return this.targetStage;
|
|
122
87
|
}
|
|
123
|
-
|
|
124
|
-
* Default function for catching commands errors.
|
|
125
|
-
*
|
|
126
|
-
* @param error
|
|
127
|
-
* @returns
|
|
128
|
-
*/
|
|
129
|
-
catch(error) {
|
|
130
|
-
if (error.name.includes('GenericTimeoutError')) {
|
|
131
|
-
const err = messages.createError('error.ClientTimeout', [this.config.bin, this.id]);
|
|
132
|
-
return super.catch({ ...error, name: err.name, message: err.message, code: err.code });
|
|
133
|
-
}
|
|
134
|
-
return super.catch(error);
|
|
135
|
-
}
|
|
136
|
-
async requestPromotion(targetOrg) {
|
|
88
|
+
async requestPromotion() {
|
|
137
89
|
this.buildPromoteOptions();
|
|
138
90
|
const req = {
|
|
139
91
|
method: 'POST',
|
|
@@ -143,7 +95,8 @@ class PromoteCommand extends sf_plugins_core_1.SfCommand {
|
|
|
143
95
|
promoteOptions: this.deployOptions,
|
|
144
96
|
}),
|
|
145
97
|
};
|
|
146
|
-
|
|
98
|
+
const response = await this.targetOrg.getConnection().request(req);
|
|
99
|
+
return response.jobId;
|
|
147
100
|
}
|
|
148
101
|
buildPromoteOptions() {
|
|
149
102
|
this.deployOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractPromote.js","sourceRoot":"","sources":["../../../src/common/base/abstractPromote.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"abstractPromote.js","sourceRoot":"","sources":["../../../src/common/base/abstractPromote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Interfaces } from '@oclif/core';
|
|
2
|
+
import { Org } from '@salesforce/core';
|
|
3
|
+
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
4
|
+
import { PipelineStage, PromoteOptions } from '..';
|
|
5
|
+
import { AsyncOperationResultJson } from '../../common';
|
|
6
|
+
import { AsyncCommand } from './abstractAsyncOperation';
|
|
7
|
+
export type Flags<T extends typeof SfCommand> = Interfaces.InferredFlags<(typeof QuickPromotionCommand)['baseFlags'] & T['flags']>;
|
|
8
|
+
export default abstract class QuickPromotionCommand<T extends typeof SfCommand> extends AsyncCommand {
|
|
9
|
+
static baseFlags: {
|
|
10
|
+
async: Interfaces.BooleanFlag<boolean>;
|
|
11
|
+
concise: Interfaces.BooleanFlag<boolean>;
|
|
12
|
+
verbose: Interfaces.BooleanFlag<boolean>;
|
|
13
|
+
wait: Interfaces.OptionFlag<import("@salesforce/kit").Duration, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
'devops-center-username': Interfaces.OptionFlag<Org | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
'job-id': Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
'use-most-recent': Interfaces.BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
protected flags: Flags<T>;
|
|
19
|
+
private targetStage;
|
|
20
|
+
private deployOptions;
|
|
21
|
+
init(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* Knows how to perform a quick promotion and watch its progress.
|
|
25
|
+
*/
|
|
26
|
+
executeQuickPromotion(): Promise<AsyncOperationResultJson>;
|
|
27
|
+
protected getTargetStage(): PipelineStage;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* Build a promotion request for a quick promotion and send it to the target org.
|
|
31
|
+
*
|
|
32
|
+
* @param projectId ID of the project.
|
|
33
|
+
* @param sourceStageId ID of the source stage.
|
|
34
|
+
* @param deploymentId ID of the validate deployemnt to use for quick deploy.
|
|
35
|
+
*/
|
|
36
|
+
private requestPromotion;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* Obtain the deployment ID to use for quick promotion.
|
|
40
|
+
*/
|
|
41
|
+
private getDeploymentResultForQuickDeploy;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* Build the promote options for a quick promotion.
|
|
45
|
+
*/
|
|
46
|
+
private buildPromoteOptions;
|
|
47
|
+
/**
|
|
48
|
+
* Knows how to compute the target pipeline stage Id based on the type of promotion.
|
|
49
|
+
*
|
|
50
|
+
* @returns: string. It is the source stage Id.
|
|
51
|
+
*/
|
|
52
|
+
protected abstract getSourceStageId(): string;
|
|
53
|
+
/**
|
|
54
|
+
* Returns the specific promote options specific for every concrete implementations.
|
|
55
|
+
*
|
|
56
|
+
* @returns: Partial<PromoteOptions>.
|
|
57
|
+
*/
|
|
58
|
+
protected abstract getPromoteOptions(): Partial<PromoteOptions>;
|
|
59
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@salesforce/core");
|
|
4
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const deployPipelineCache_1 = require("../deployPipelineCache");
|
|
8
|
+
const promoteFlags_1 = require("../flags/promote/promoteFlags");
|
|
9
|
+
const flags_1 = require("../flags/flags");
|
|
10
|
+
const outputService_1 = require("../outputService");
|
|
11
|
+
const deploymentResultsSelector_1 = require("../selectors/deploymentResultsSelector");
|
|
12
|
+
const pipelineStageSelector_1 = require("../selectors/pipelineStageSelector");
|
|
13
|
+
const abstractAsyncOperation_1 = require("./abstractAsyncOperation");
|
|
14
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
15
|
+
const messages = core_1.Messages.loadMessages('@salesforce/plugin-devops-center', 'project.deploy.pipeline.quick');
|
|
16
|
+
class QuickPromotionCommand extends abstractAsyncOperation_1.AsyncCommand {
|
|
17
|
+
async init() {
|
|
18
|
+
await super.init();
|
|
19
|
+
const { flags } = await this.parse({
|
|
20
|
+
flags: this.ctor.flags,
|
|
21
|
+
baseFlags: super.ctor.baseFlags,
|
|
22
|
+
});
|
|
23
|
+
this.flags = flags;
|
|
24
|
+
this.targetOrg = this.flags['devops-center-username'];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
* Knows how to perform a quick promotion and watch its progress.
|
|
29
|
+
*/
|
|
30
|
+
async executeQuickPromotion() {
|
|
31
|
+
const deploymentResult = await this.getDeploymentResultForQuickDeploy();
|
|
32
|
+
const envId = deploymentResult.sf_devops__Change_Bundle_Installs__r.records[0].sf_devops__Environment__c;
|
|
33
|
+
this.targetStage = (await (0, pipelineStageSelector_1.selectOnePipelineStageByEnvironmentId)(this.targetOrg.getConnection(), envId));
|
|
34
|
+
this.setOutputService(new outputService_1.OutputServiceFactory().forQuickDeployment(this.flags, this.flags['devops-center-username'].getConnection(), this.targetStage.sf_devops__Branch__r.sf_devops__Name__c));
|
|
35
|
+
this.setAsyncOperationId(await this.requestPromotion(this.targetStage.sf_devops__Pipeline__r.sf_devops__Project__c, this.getSourceStageId(), deploymentResult.sf_devops__Deployment_Id__c));
|
|
36
|
+
return this.monitorOperation(this.flags.async, this.flags.wait);
|
|
37
|
+
}
|
|
38
|
+
getTargetStage() {
|
|
39
|
+
return this.targetStage;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* Build a promotion request for a quick promotion and send it to the target org.
|
|
44
|
+
*
|
|
45
|
+
* @param projectId ID of the project.
|
|
46
|
+
* @param sourceStageId ID of the source stage.
|
|
47
|
+
* @param deploymentId ID of the validate deployemnt to use for quick deploy.
|
|
48
|
+
*/
|
|
49
|
+
async requestPromotion(projectId, sourceStageId, deploymentId) {
|
|
50
|
+
this.buildPromoteOptions(deploymentId);
|
|
51
|
+
const req = {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
url: `${constants_1.REST_PROMOTE_BASE_URL}${projectId}/pipelineName/${sourceStageId}`,
|
|
54
|
+
body: JSON.stringify({
|
|
55
|
+
promoteOptions: this.deployOptions,
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
const response = await this.targetOrg.getConnection().request(req);
|
|
59
|
+
return response.jobId;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
*
|
|
63
|
+
* Obtain the deployment ID to use for quick promotion.
|
|
64
|
+
*/
|
|
65
|
+
async getDeploymentResultForQuickDeploy() {
|
|
66
|
+
const asyncJobId = this.flags['use-most-recent']
|
|
67
|
+
? (await deployPipelineCache_1.DeployPipelineCache.create()).getLatestKeyOrThrow()
|
|
68
|
+
: this.flags['job-id'];
|
|
69
|
+
const deploymentResult = await (0, deploymentResultsSelector_1.selectOneDeploymentResultWithChangeBundleInstallsByAsyncJobId)(this.targetOrg.getConnection(), asyncJobId);
|
|
70
|
+
if (!deploymentResult) {
|
|
71
|
+
throw messages.createError('error.JobIsNotValidationDeployment');
|
|
72
|
+
}
|
|
73
|
+
if (deploymentResult.sf_devops__Check_Deploy_Status__r.sf_devops__Status__c !== __1.AsyncOperationStatus.Completed) {
|
|
74
|
+
throw messages.createError('error.JobIsNotValidated');
|
|
75
|
+
}
|
|
76
|
+
return deploymentResult;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* Build the promote options for a quick promotion.
|
|
81
|
+
*/
|
|
82
|
+
buildPromoteOptions(deployId) {
|
|
83
|
+
this.deployOptions = {
|
|
84
|
+
testLevel: 'Default',
|
|
85
|
+
deploymentId: deployId,
|
|
86
|
+
// get more promote options from the concrete implementation if needed
|
|
87
|
+
...this.getPromoteOptions(),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.default = QuickPromotionCommand;
|
|
92
|
+
QuickPromotionCommand.baseFlags = {
|
|
93
|
+
async: promoteFlags_1.async,
|
|
94
|
+
concise: flags_1.concise,
|
|
95
|
+
verbose: flags_1.verbose,
|
|
96
|
+
wait: flags_1.wait,
|
|
97
|
+
'devops-center-username': (0, flags_1.requiredDoceOrgFlag)(),
|
|
98
|
+
'job-id': sf_plugins_core_1.Flags.salesforceId({
|
|
99
|
+
char: 'i',
|
|
100
|
+
description: messages.getMessage('flags.job-id.description'),
|
|
101
|
+
summary: messages.getMessage('flags.job-id.summary'),
|
|
102
|
+
exactlyOne: ['use-most-recent', 'job-id'],
|
|
103
|
+
}),
|
|
104
|
+
'use-most-recent': sf_plugins_core_1.Flags.boolean({
|
|
105
|
+
char: 'r',
|
|
106
|
+
description: messages.getMessage('flags.use-most-recent.description'),
|
|
107
|
+
summary: messages.getMessage('flags.use-most-recent.summary'),
|
|
108
|
+
exactlyOne: ['use-most-recent', 'job-id'],
|
|
109
|
+
}),
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=abstractQuick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstractQuick.js","sourceRoot":"","sources":["../../../src/common/base/abstractQuick.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Org
|
|
1
|
+
import { Org } from '@salesforce/core';
|
|
2
2
|
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
3
3
|
import { Interfaces } from '@oclif/core';
|
|
4
|
-
import {
|
|
4
|
+
import { AsyncOperationResultJson, AsyncOperationStatus } from '../../common';
|
|
5
|
+
import { AsyncCommand } from './abstractAsyncOperation';
|
|
5
6
|
/**
|
|
6
7
|
* Helper to determine if an operation has finished and therefore is not resumable
|
|
7
8
|
*
|
|
@@ -14,24 +15,17 @@ export type Flags<T extends typeof SfCommand> = Interfaces.InferredFlags<(typeof
|
|
|
14
15
|
*
|
|
15
16
|
* Base class with the common logic to resume an in progress opeation
|
|
16
17
|
*/
|
|
17
|
-
export declare abstract class ResumeCommand<T extends typeof SfCommand> extends
|
|
18
|
+
export declare abstract class ResumeCommand<T extends typeof SfCommand> extends AsyncCommand {
|
|
18
19
|
static baseFlags: {
|
|
19
20
|
'devops-center-username': Interfaces.OptionFlag<Org | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
20
21
|
'job-id': Interfaces.OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
21
22
|
'use-most-recent': Interfaces.BooleanFlag<boolean>;
|
|
23
|
+
concise: Interfaces.BooleanFlag<boolean>;
|
|
24
|
+
verbose: Interfaces.BooleanFlag<boolean>;
|
|
22
25
|
wait: Interfaces.OptionFlag<import("@salesforce/kit").Duration, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
23
26
|
};
|
|
24
27
|
protected flags: Flags<T>;
|
|
25
|
-
private outputService;
|
|
26
28
|
protected abstract operationType: string;
|
|
27
|
-
protected abstract baseCommand: string;
|
|
28
29
|
init(): Promise<void>;
|
|
29
|
-
protected resumeOperation(): Promise<
|
|
30
|
-
/**
|
|
31
|
-
* Default function for catching commands errors.
|
|
32
|
-
*
|
|
33
|
-
* @param error
|
|
34
|
-
* @returns
|
|
35
|
-
*/
|
|
36
|
-
protected catch(error: Error | SfError): Promise<SfCommand.Error>;
|
|
30
|
+
protected resumeOperation(): Promise<AsyncOperationResultJson>;
|
|
37
31
|
}
|
|
@@ -8,11 +8,11 @@ exports.ResumeCommand = exports.isNotResumable = void 0;
|
|
|
8
8
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
9
9
|
*/
|
|
10
10
|
const core_1 = require("@salesforce/core");
|
|
11
|
-
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
12
11
|
const common_1 = require("../../common");
|
|
13
12
|
const flags_1 = require("../../common/flags/flags");
|
|
14
13
|
const deployPipelineCache_1 = require("./../deployPipelineCache");
|
|
15
14
|
const outputService_1 = require("./../outputService");
|
|
15
|
+
const abstractAsyncOperation_1 = require("./abstractAsyncOperation");
|
|
16
16
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
17
17
|
const messages = core_1.Messages.loadMessages('@salesforce/plugin-devops-center', 'commonErrors');
|
|
18
18
|
/**
|
|
@@ -29,7 +29,7 @@ exports.isNotResumable = isNotResumable;
|
|
|
29
29
|
*
|
|
30
30
|
* Base class with the common logic to resume an in progress opeation
|
|
31
31
|
*/
|
|
32
|
-
class ResumeCommand extends
|
|
32
|
+
class ResumeCommand extends abstractAsyncOperation_1.AsyncCommand {
|
|
33
33
|
async init() {
|
|
34
34
|
await super.init();
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
@@ -38,45 +38,20 @@ class ResumeCommand extends sf_plugins_core_1.SfCommand {
|
|
|
38
38
|
baseFlags: super.ctor.baseFlags,
|
|
39
39
|
}); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
40
40
|
this.flags = flags;
|
|
41
|
-
this.
|
|
41
|
+
this.setOutputService(new outputService_1.OutputServiceFactory().forResume(this.flags, this.operationType, this.flags['devops-center-username'].getConnection()));
|
|
42
42
|
}
|
|
43
43
|
async resumeOperation() {
|
|
44
44
|
const asyncJobId = this.flags['use-most-recent']
|
|
45
45
|
? (await deployPipelineCache_1.DeployPipelineCache.create()).getLatestKeyOrThrow()
|
|
46
46
|
: this.flags['job-id'];
|
|
47
47
|
// get the latest state of the async job and validate that it's resumable
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
this.targetOrg = this.flags['devops-center-username'];
|
|
49
|
+
const asyncJob = await (0, common_1.fetchAsyncOperationResult)(this.targetOrg.getConnection(), asyncJobId);
|
|
50
50
|
if (asyncJob.sf_devops__Status__c && isNotResumable(asyncJob.sf_devops__Status__c)) {
|
|
51
51
|
throw messages.createError('error.JobNotResumable', [asyncJobId, asyncJob.sf_devops__Status__c]);
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
this.
|
|
55
|
-
this.outputService.printOpSummary();
|
|
56
|
-
this.outputService.printAorId();
|
|
57
|
-
const streamer = (0, common_1.getAsyncOperationStreamer)(doceOrg, this.flags.wait, asyncJobId, this.outputService);
|
|
58
|
-
await streamer.monitor();
|
|
59
|
-
// get final state of the async job
|
|
60
|
-
asyncJob = await (0, common_1.fetchAsyncOperationResult)(doceOrg.getConnection(), asyncJobId);
|
|
61
|
-
return {
|
|
62
|
-
jobId: asyncJobId,
|
|
63
|
-
status: asyncJob.sf_devops__Status__c,
|
|
64
|
-
message: asyncJob.sf_devops__Message__c,
|
|
65
|
-
errorDetails: asyncJob.sf_devops__Error_Details__c,
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Default function for catching commands errors.
|
|
70
|
-
*
|
|
71
|
-
* @param error
|
|
72
|
-
* @returns
|
|
73
|
-
*/
|
|
74
|
-
catch(error) {
|
|
75
|
-
if (error.name.includes('GenericTimeoutError')) {
|
|
76
|
-
const err = messages.createError('error.ClientTimeout', [this.config.bin, this.baseCommand]);
|
|
77
|
-
return super.catch({ ...error, name: err.name, message: err.message, code: err.code });
|
|
78
|
-
}
|
|
79
|
-
return super.catch(error);
|
|
53
|
+
this.setAsyncOperationId(asyncJobId);
|
|
54
|
+
return this.monitorOperation(false, this.flags.wait);
|
|
80
55
|
}
|
|
81
56
|
}
|
|
82
57
|
exports.ResumeCommand = ResumeCommand;
|
|
@@ -85,6 +60,8 @@ ResumeCommand.baseFlags = {
|
|
|
85
60
|
'devops-center-username': (0, flags_1.requiredDoceOrgFlag)(),
|
|
86
61
|
'job-id': flags_1.jobId,
|
|
87
62
|
'use-most-recent': flags_1.useMostRecent,
|
|
63
|
+
concise: flags_1.concise,
|
|
64
|
+
verbose: flags_1.verbose,
|
|
88
65
|
wait: flags_1.wait,
|
|
89
66
|
};
|
|
90
67
|
//# sourceMappingURL=abstractResume.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractResume.js","sourceRoot":"","sources":["../../../src/common/base/abstractResume.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"abstractResume.js","sourceRoot":"","sources":["../../../src/common/base/abstractResume.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,2CAAiD;AAGjD,yCAKsB;AACtB,oDAA6G;AAC7G,kEAA+D;AAC/D,sDAA0D;AAC1D,qEAAwD;AAExD,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAE3F;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAA4B;IACzD,OAAO,CAAC,6BAAoB,CAAC,SAAS,EAAE,6BAAoB,CAAC,KAAK,EAAE,6BAAoB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrH,CAAC;AAFD,wCAEC;AAMD;;;GAGG;AAEH,MAAsB,aAA0C,SAAQ,qCAAY;IAe3E,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,mEAAmE;QACnE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACjC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,SAAS,EAAG,KAAK,CAAC,IAA6B,CAAC,SAAS;SAC1D,CAAC,CAAC,CAAC,mEAAmE;QACvE,IAAI,CAAC,KAAK,GAAG,KAAiB,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CACnB,IAAI,oCAAoB,EAAE,CAAC,SAAS,CAClC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,EACjB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAS,CAAC,aAAa,EAAE,CAC9D,CACF,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,eAAe;QAC7B,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACtD,CAAC,CAAC,CAAC,MAAM,yCAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,mBAAmB,EAAE;YAC5D,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAC;QAErC,yEAAyE;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAQ,CAAC;QAC7D,MAAM,QAAQ,GAAyB,MAAM,IAAA,kCAAyB,EAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,UAAU,CAAC,CAAC;QACnH,IAAI,QAAQ,CAAC,oBAAoB,IAAI,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;YAClF,MAAM,QAAQ,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;SAClG;QAED,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;;AA9CH,sCA+CC;AA9CC,+EAA+E;AACjE,uBAAS,GAAG;IACxB,wBAAwB,EAAE,IAAA,2BAAmB,GAAE;IAC/C,QAAQ,EAAE,aAAK;IACf,iBAAiB,EAAE,qBAAa;IAChC,OAAO,EAAP,eAAO;IACP,OAAO,EAAP,eAAO;IACP,IAAI,EAAJ,YAAI;CACL,CAAC"}
|
|
@@ -5,5 +5,6 @@ export declare const HTTP_CONFLICT_CODE = "CONFLICT";
|
|
|
5
5
|
export declare enum AsyncOperationType {
|
|
6
6
|
AD_HOC_PROMOTE = "AD_HOC_PROMOTE",
|
|
7
7
|
VERSIONED_PROMOTE = "VERSIONED_PROMOTE",
|
|
8
|
-
SOUP_PROMOTE = "SOUP_PROMOTE"
|
|
8
|
+
SOUP_PROMOTE = "SOUP_PROMOTE",
|
|
9
|
+
CHECK_DEPLOY = "CHECK_DEPLOY"
|
|
9
10
|
}
|
package/lib/common/constants.js
CHANGED
|
@@ -16,5 +16,6 @@ var AsyncOperationType;
|
|
|
16
16
|
AsyncOperationType["AD_HOC_PROMOTE"] = "AD_HOC_PROMOTE";
|
|
17
17
|
AsyncOperationType["VERSIONED_PROMOTE"] = "VERSIONED_PROMOTE";
|
|
18
18
|
AsyncOperationType["SOUP_PROMOTE"] = "SOUP_PROMOTE";
|
|
19
|
+
AsyncOperationType["CHECK_DEPLOY"] = "CHECK_DEPLOY";
|
|
19
20
|
})(AsyncOperationType = exports.AsyncOperationType || (exports.AsyncOperationType = {}));
|
|
20
21
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,mBAAmB,GAAG,2CAA2C,CAAC;AAClE,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAC5E,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAC7C,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,mBAAmB,GAAG,2CAA2C,CAAC;AAClE,QAAA,qBAAqB,GAAG,mDAAmD,CAAC;AAC5E,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAC7C,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,uDAAiC,CAAA;IACjC,6DAAuC,CAAA;IACvC,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;AAC/B,CAAC,EALW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAK7B"}
|
|
@@ -17,3 +17,8 @@ export declare const jobId: OptionFlag<string | undefined>;
|
|
|
17
17
|
export declare const useMostRecent: BooleanFlag<boolean>;
|
|
18
18
|
export declare const verbose: BooleanFlag<boolean>;
|
|
19
19
|
export declare const concise: BooleanFlag<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Helper to get the userneame or alias of the default Devops Center org
|
|
22
|
+
* from the target-devops-center config variable.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getDefaultDevopsCenterUsernameAlias: () => Promise<string | undefined>;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.concise = exports.verbose = exports.useMostRecent = exports.jobId = exports.requiredDoceOrgFlag = exports.wait = exports.devopsCenterProjectName = void 0;
|
|
9
|
+
exports.getDefaultDevopsCenterUsernameAlias = exports.concise = exports.verbose = exports.useMostRecent = exports.jobId = exports.requiredDoceOrgFlag = exports.wait = exports.devopsCenterProjectName = void 0;
|
|
10
10
|
const core_1 = require("@salesforce/core");
|
|
11
11
|
const kit_1 = require("@salesforce/kit");
|
|
12
12
|
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
@@ -44,7 +44,7 @@ exports.requiredDoceOrgFlag = core_2.Flags.custom({
|
|
|
44
44
|
summary: messages.getMessage('flags.targetDoceOrg.summary'),
|
|
45
45
|
parse: async (input) => getOrgOrThrow(input),
|
|
46
46
|
default: async () => getOrgOrThrow(),
|
|
47
|
-
defaultHelp: async () => (
|
|
47
|
+
defaultHelp: async () => (0, exports.getDefaultDevopsCenterUsernameAlias)(),
|
|
48
48
|
required: true,
|
|
49
49
|
});
|
|
50
50
|
exports.jobId = sf_plugins_core_1.Flags.salesforceId({
|
|
@@ -66,6 +66,15 @@ exports.concise = sf_plugins_core_1.Flags.boolean({
|
|
|
66
66
|
summary: messages.getMessage('flags.concise.summary'),
|
|
67
67
|
exclusive: ['verbose'],
|
|
68
68
|
});
|
|
69
|
+
/**
|
|
70
|
+
* Helper to get the userneame or alias of the default Devops Center org
|
|
71
|
+
* from the target-devops-center config variable.
|
|
72
|
+
*/
|
|
73
|
+
const getDefaultDevopsCenterUsernameAlias = async () => {
|
|
74
|
+
const config = await core_1.ConfigAggregator.create({ customConfigMeta: configMeta_1.default });
|
|
75
|
+
return config.getInfo(configMeta_1.ConfigVars.TARGET_DEVOPS_CENTER)?.value?.toString();
|
|
76
|
+
};
|
|
77
|
+
exports.getDefaultDevopsCenterUsernameAlias = getDefaultDevopsCenterUsernameAlias;
|
|
69
78
|
/**
|
|
70
79
|
*
|
|
71
80
|
* @param input alias/username of an org
|
|
@@ -73,12 +82,11 @@ exports.concise = sf_plugins_core_1.Flags.boolean({
|
|
|
73
82
|
* or to the alias/username set in --target-devops-center config variable.
|
|
74
83
|
*/
|
|
75
84
|
const getOrgOrThrow = async (input) => {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
if (!alias) {
|
|
85
|
+
const usernameOrAlias = input ? input : await (0, exports.getDefaultDevopsCenterUsernameAlias)();
|
|
86
|
+
if (!usernameOrAlias) {
|
|
79
87
|
throw messages.createError('errors.NoDefaultDoceEnv');
|
|
80
88
|
}
|
|
81
|
-
const org = await core_1.Org.create({ aliasOrUsername:
|
|
89
|
+
const org = await core_1.Org.create({ aliasOrUsername: usernameOrAlias });
|
|
82
90
|
return org;
|
|
83
91
|
};
|
|
84
92
|
//# sourceMappingURL=flags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/common/flags/flags.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAAmE;AACnE,yCAA2C;AAC3C,iEAAoD;AACpD,sCAAkD;AAElD,iDAA0D;AAE1D,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC;AAE7E,QAAA,uBAAuB,GAAuB,uBAAK,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC;IACxE,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH;;;GAGG;AACU,QAAA,IAAI,GAAyB,uBAAK,CAAC,QAAQ,CAAC;IACvD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;IAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;IAC1D,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,cAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,WAAW;IACtB,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC,OAAO,CAAC;CACrB,CAAC,CAAC;AAEH;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,YAAU,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC3D,KAAK,EAAE,KAAK,EAAE,KAAyB,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;IAChE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa,EAAE;IACpC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/common/flags/flags.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAAmE;AACnE,yCAA2C;AAC3C,iEAAoD;AACpD,sCAAkD;AAElD,iDAA0D;AAE1D,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC;AAE7E,QAAA,uBAAuB,GAAuB,uBAAK,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,0CAA0C,CAAC;IACxE,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH;;;GAGG;AACU,QAAA,IAAI,GAAyB,uBAAK,CAAC,QAAQ,CAAC;IACvD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;IAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;IAC1D,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,cAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,WAAW;IACtB,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,CAAC,OAAO,CAAC;CACrB,CAAC,CAAC;AAEH;;;;GAIG;AACU,QAAA,mBAAmB,GAAG,YAAU,CAAC,MAAM,CAAC;IACnD,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC3D,KAAK,EAAE,KAAK,EAAE,KAAyB,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;IAChE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,aAAa,EAAE;IACpC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,2CAAmC,GAAE;IAC9D,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEU,QAAA,KAAK,GAAmC,uBAAK,CAAC,YAAY,CAAC;IACtE,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;IAC5D,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;IACpD,UAAU,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;CAC1C,CAAC,CAAC;AAEU,QAAA,aAAa,GAAyB,uBAAK,CAAC,OAAO,CAAC;IAC/D,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,mCAAmC,CAAC;IACrE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;IAC7D,UAAU,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;CAC1C,CAAC,CAAC;AAEU,QAAA,OAAO,GAAyB,uBAAK,CAAC,OAAO,CAAC;IACzD,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;CACtD,CAAC,CAAC;AAEU,QAAA,OAAO,GAAyB,uBAAK,CAAC,OAAO,CAAC;IACzD,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC;IACrD,SAAS,EAAE,CAAC,SAAS,CAAC;CACvB,CAAC,CAAC;AAEH;;;GAGG;AACI,MAAM,mCAAmC,GAAG,KAAK,IAAiC,EAAE;IACzF,MAAM,MAAM,GAAG,MAAM,uBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,oBAAU,EAAE,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,OAAO,CAAC,uBAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC5E,CAAC,CAAC;AAHW,QAAA,mCAAmC,uCAG9C;AAEF;;;;;GAKG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,KAAc,EAAgB,EAAE;IAC3D,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAA,2CAAmC,GAAE,CAAC;IACpF,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,QAAQ,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;KACvD;IACD,MAAM,GAAG,GAAQ,MAAM,UAAG,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;IACxE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
|
package/lib/common/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { ApiError, AsyncOperationResult, AsyncOperationStatus, DeploymentResult, PipelineStage, PromoteOptions, PromotePipelineResult, TestLevel, DeployComponent, } from './types';
|
|
1
|
+
export { ApiError, ApiPromoteResponse, AsyncOperationResult, AsyncOperationResultJson, AsyncOperationStatus, DeploymentResult, PipelineStage, PromoteOptions, PromotePipelineResult, TestLevel, DeployComponent, } from './types';
|
|
2
2
|
export { fetchAndValidatePipelineStage, fetchAsyncOperationResult, getAsyncOperationStreamer, validateTestFlags, } from './utils';
|
package/lib/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,iCAYiB;AAPf,6GAAA,oBAAoB,OAAA;AAKpB,kGAAA,SAAS,OAAA;AAGX,iCAKiB;AAJf,sHAAA,6BAA6B,OAAA;AAC7B,kHAAA,yBAAyB,OAAA;AACzB,kHAAA,yBAAyB,OAAA;AACzB,0GAAA,iBAAiB,OAAA"}
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.DeployComponentsTable = void 0;
|
|
10
10
|
const core_1 = require("@salesforce/core");
|
|
11
11
|
core_1.Messages.importMessagesDirectory(__dirname);
|
|
12
|
-
const tableElements = core_1.Messages.loadMessages('@salesforce/plugin-devops-center', 'deploy.pipeline');
|
|
12
|
+
const tableElements = core_1.Messages.loadMessages('@salesforce/plugin-devops-center', 'project.deploy.pipeline.start');
|
|
13
13
|
exports.DeployComponentsTable = {
|
|
14
14
|
columns: {
|
|
15
15
|
// eslint-disable-next-line camelcase
|
|
@@ -20,5 +20,6 @@ exports.DeployComponentsTable = {
|
|
|
20
20
|
sf_devops__File_Path__c: { header: tableElements.getMessage('deployComponent.path.column') },
|
|
21
21
|
},
|
|
22
22
|
title: tableElements.getMessage('deployComponent.table.title'),
|
|
23
|
+
validateDeployTitle: tableElements.getMessage('deployComponent.table.validateDeployTitle'),
|
|
23
24
|
};
|
|
24
25
|
//# sourceMappingURL=outputColumns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputColumns.js","sourceRoot":"","sources":["../../src/common/outputColumns.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,eAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,
|
|
1
|
+
{"version":3,"file":"outputColumns.js","sourceRoot":"","sources":["../../src/common/outputColumns.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAA4C;AAE5C,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,eAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,+BAA+B,CAAC,CAAC;AAEpG,QAAA,qBAAqB,GAAG;IACnC,OAAO,EAAE;QACP,qCAAqC;QACrC,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,kCAAkC,CAAC,EAAE;QACjG,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE;QACzE,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE;QACzE,qCAAqC;QACrC,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE;KAC7F;IACD,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC9D,mBAAmB,EAAE,aAAa,CAAC,UAAU,CAAC,2CAA2C,CAAC;CAC3F,CAAC"}
|