Skip to content
This repository was archived by the owner on Mar 18, 2024. It is now read-only.

Commit d04ffd6

Browse files
author
azlam-abdulsalam
committed
feat(release): add an option to skip artifact record update in release
Add a new property called `skipArtifactUpdate` which allows for skipping insertion of artifact versions to sfpowerscripts_artifact2__c. This is useful in case of diff packages where hotfix deployments should not alter the version already recorded. A better variant of this will be released at later stage
1 parent 853ee03 commit d04ffd6

7 files changed

+818
-1847
lines changed

package-lock.json

+803-1,846
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/sfpowerscripts-cli/resources/schemas/releasedefinition.schema.json

+3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
"skipIfAlreadyInstalled": {
1717
"type": "boolean"
1818
},
19+
"skipArtifactUpdate": {
20+
"type": "boolean"
21+
},
1922
"baselineOrg": {
2023
"type": "string"
2124
},

packages/sfpowerscripts-cli/resources/schemas/releasedefinitiongenerator.schema.json

+3
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@
5656
"skipIfAlreadyInstalled": {
5757
"type": "boolean"
5858
},
59+
"skipArtifactUpdate": {
60+
"type": "boolean"
61+
},
5962
"baselineOrg": {
6063
"type": "string"
6164
},

packages/sfpowerscripts-cli/src/impl/release/ReleaseDefinitionGenerator.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { LoggerLevel } from '@dxatscale/sfp-logger';
1010
import Git from '@dxatscale/sfpowerscripts.core/lib/git/Git';
1111
import GitTags from '@dxatscale/sfpowerscripts.core/lib/git/GitTags';
1212
const retry = require('async-retry');
13-
import yaml from 'js-yaml'
13+
const yaml = require('js-yaml');
1414
const path = require('path');
1515

1616
export default class ReleaseDefinitionGenerator {
@@ -182,6 +182,7 @@ export default class ReleaseDefinitionGenerator {
182182
let releaseDefinition: ReleaseDefinitionSchema = {
183183
release: this.releaseName,
184184
skipIfAlreadyInstalled: true,
185+
skipArtifactUpdate:false,
185186
artifacts: artifacts,
186187
};
187188

@@ -195,6 +196,10 @@ export default class ReleaseDefinitionGenerator {
195196
if(this.releaseDefinitionGeneratorConfigSchema.releasedefinitionProperties?.skipIfAlreadyInstalled)
196197
releaseDefinition.skipIfAlreadyInstalled = this.releaseDefinitionGeneratorConfigSchema.releasedefinitionProperties?.skipIfAlreadyInstalled;
197198

199+
//override skip artifact update
200+
if(this.releaseDefinitionGeneratorConfigSchema.releasedefinitionProperties?.skipArtifactUpdate)
201+
releaseDefinition.skipArtifactUpdate = this.releaseDefinitionGeneratorConfigSchema.releasedefinitionProperties?.skipArtifactUpdate;
202+
198203
//Add changelog info
199204
releaseDefinition.changelog = this.releaseDefinitionGeneratorConfigSchema.releasedefinitionProperties?.changelog;
200205

packages/sfpowerscripts-cli/src/impl/release/ReleaseDefinitionGeneratorConfigSchema.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default interface ReleaseDefinitionGeneratorSchema {
77
includeOnlyPackageDependencies?: string[];
88
releasedefinitionProperties?: {
99
skipIfAlreadyInstalled: boolean;
10+
skipArtifactUpdate:boolean;
1011
baselineOrg?: string;
1112
promotePackagesBeforeDeploymentToOrg?: string;
1213
changelog?: {

packages/sfpowerscripts-cli/src/impl/release/ReleaseDefinitionSchema.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export default interface ReleaseDefinitionSchema {
22
release: string;
33
skipIfAlreadyInstalled: boolean;
4+
skipArtifactUpdate:boolean;
45
baselineOrg?: string;
56
artifacts: {
67
[p: string]: string;

packages/sfpowerscripts-cli/src/impl/release/ReleaseImpl.ts

+1
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ export default class ReleaseImpl {
220220
currentStage: Stage.DEPLOY,
221221
baselineOrg: releaseDefinition.baselineOrg,
222222
isDryRun: this.props.isDryRun,
223+
disableArtifactCommit: releaseDefinition.skipArtifactUpdate?releaseDefinition.skipArtifactUpdate:false,
223224
promotePackagesBeforeDeploymentToOrg: releaseDefinition.promotePackagesBeforeDeploymentToOrg,
224225
devhubUserName: this.props.devhubUserName,
225226
};

0 commit comments

Comments
 (0)