@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
96 lines • 8.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const SfpCommand_1 = __importDefault(require("../../SfpCommand"));
const core_1 = require("@salesforce/core");
const PromoteUnlockedPackageImpl_1 = __importDefault(require("../../core/package/promote/PromoteUnlockedPackageImpl"));
const ArtifactFetcher_1 = __importDefault(require("../../core/artifacts/ArtifactFetcher"));
const sfp_logger_1 = require("@flxbl-io/sfp-logger");
const SfpPackageBuilder_1 = __importDefault(require("../../core/package/SfpPackageBuilder"));
const SfpPackage_1 = require("../../core/package/SfpPackage");
const core_2 = require("@oclif/core");
const sfdxflags_1 = require("../../flags/sfdxflags");
const sfp_logger_2 = require("@flxbl-io/sfp-logger");
const sfp_logger_3 = require("@flxbl-io/sfp-logger");
const sfp_logger_4 = __importDefault(require("@flxbl-io/sfp-logger"));
core_1.Messages.importMessagesDirectory(__dirname);
const messages = core_1.Messages.loadMessages('@flxbl-io/sfp', 'promote');
class Promote extends SfpCommand_1.default {
async execute() {
sfp_logger_4.default.log((0, sfp_logger_3.COLOR_HEADER)('command: promote'));
sfp_logger_4.default.log((0, sfp_logger_3.COLOR_HEADER)(`Artifact Directory: ${this.flags.artifactdir}`));
sfp_logger_4.default.printHeaderLine('', sfp_logger_3.COLOR_HEADER, sfp_logger_2.LoggerLevel.INFO);
//Refresh HubOrg Authentication
await this.hubOrg.refreshAuth();
let unpromotedPackages = [];
try {
let artifacts = ArtifactFetcher_1.default.fetchArtifacts(this.flags.artifactdir);
if (artifacts.length === 0) {
throw new Error(`No artifacts found at ${this.flags.artifactdir}`);
}
let result = true;
let promotedPackages = [];
for (let artifact of artifacts) {
let sfpPackage = await SfpPackageBuilder_1.default.buildPackageFromArtifact(artifact, new sfp_logger_1.ConsoleLogger());
try {
if (sfpPackage.package_type === SfpPackage_1.PackageType.Unlocked) {
let promoteUnlockedPackageImpl = new PromoteUnlockedPackageImpl_1.default(artifact.sourceDirectoryPath, sfpPackage.package_version_id, this.hubOrg.getUsername());
await promoteUnlockedPackageImpl.promote();
}
promotedPackages.push(sfpPackage.packageName);
}
catch (err) {
result = false;
unpromotedPackages.push({
name: sfpPackage.packageName,
error: err.message,
});
}
}
console.log(`Promoted packages:`, promotedPackages);
// Overall exit status is 1 if a package failed to promote
if (!result) {
throw new Error();
}
}
catch (err) {
console.log(err.message);
// Print unpromoted packages with reason for failure
if (unpromotedPackages.length > 0) {
core_2.ux.table(unpromotedPackages, { name: {}, error: {} });
}
// Fail the task when an error occurs
process.exitCode = 1;
}
}
substituteBuildNumberWithPreRelease(packageVersionNumber) {
let segments = packageVersionNumber.split('.');
if (segments.length === 4) {
packageVersionNumber = segments.reduce((version, segment, segmentsIdx) => {
if (segmentsIdx === 3)
return version + '-' + segment;
else
return version + '.' + segment;
});
}
return packageVersionNumber;
}
}
Promote.description = messages.getMessage('commandDescription');
Promote.aliases = ['orchestrator:promote'];
Promote.examples = [`$ sfp promote -d path/to/artifacts -v <org>`];
Promote.requiresDevhubUsername = true;
Promote.flags = {
targetdevhubusername: sfdxflags_1.targetdevhubusername,
artifactdir: core_2.Flags.directory({
required: true,
char: 'd',
description: messages.getMessage('artifactDirectoryFlagDescription'),
default: 'artifacts',
}),
loglevel: sfdxflags_1.loglevel
};
exports.default = Promote;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9hcnRpZmFjdHMvcHJvbW90ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtFQUEwQztBQUMxQywyQ0FBNEM7QUFDNUMsdUhBQThGO0FBQzlGLDJGQUFtRTtBQUNuRSxxREFBcUQ7QUFDckQsNkZBQXFFO0FBQ3JFLDhEQUE0RDtBQUM1RCxzQ0FBd0M7QUFDeEMscURBQXVFO0FBQ3ZFLHFEQUFtRDtBQUNuRCxxREFBb0Q7QUFDcEQsc0VBQTZDO0FBRTdDLGVBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM1QyxNQUFNLFFBQVEsR0FBRyxlQUFRLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVuRSxNQUFxQixPQUFRLFNBQVEsb0JBQVU7SUFvQnBDLEtBQUssQ0FBQyxPQUFPO1FBQ2hCLG9CQUFTLENBQUMsR0FBRyxDQUFDLElBQUEseUJBQVksRUFBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDaEQsb0JBQVMsQ0FBQyxHQUFHLENBQUMsSUFBQSx5QkFBWSxFQUFDLHVCQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxvQkFBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUMseUJBQVksRUFBQyx3QkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVELCtCQUErQjtRQUMvQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEMsSUFBSSxrQkFBa0IsR0FBc0MsRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQztZQUNELElBQUksU0FBUyxHQUFHLHlCQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFdkUsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENB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