@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
89 lines (88 loc) • 2.7 kB
TypeScript
import { Logger } from '@flxbl-io/sfp-logger';
import { Stage } from '../Stage';
import SfpPackage from '../../core/package/SfpPackage';
import { PostDeployHook } from './PostDeployHook';
import { PreDeployHook } from './PreDeployHook';
export declare enum DeploymentMode {
NORMAL = 0,
SOURCEPACKAGES = 1,
SOURCEPACKAGES_PUSH = 2
}
export interface DeployProps {
targetUsername: string;
artifactDir: string;
deploymentMode: DeploymentMode;
isTestsToBeTriggered: boolean;
skipIfPackageInstalled: boolean;
logsGroupSymbol?: string[];
waitTime: number;
tags?: any;
logger?: Logger;
currentStage?: Stage;
baselineOrg?: string;
isDryRun?: boolean;
isRetryOnFailure?: boolean;
promotePackagesBeforeDeploymentToOrg?: string;
devhubUserName?: string;
disableArtifactCommit?: boolean;
selectiveComponentDeployment?: boolean;
maxRetryCount?: number;
releaseConfigPath?: string;
filterByProvidedArtifacts?: string[];
impactedPackagesAsPerBranch?: Map<string, string[]>;
}
export default class DeployImpl {
private props;
private _postDeployHook;
private _preDeployHook;
private targetOrg;
constructor(props: DeployProps);
set postDeployHook(hook: PostDeployHook);
set preDeployHook(hook: PreDeployHook);
exec(): Promise<DeploymentResult>;
private filterSfPPackagesBasedOnReleaseConfig;
private filterSfPPackagesBasedOnArtifacts;
private generateSfpPackageFromArtifacts;
private promotePackagesBeforeInstallation;
private displayRetryHeader;
private displayHeader;
private displayTestInfoHeader;
private printArtifactVersionsWhenSkipped;
private printArtifactVersions;
private filterByPackagesInstalledInTheOrg;
/**
* Returns map of package name to package info
* @param artifacts
*/
private getPackagesToPackageInfo;
/**
* Decider for which package installation type to run
*/
private installPackage;
/**
* Checks if package should be installed to target username
* @param packageDescriptor
*/
private isSkipDeployment;
private isOptimizedDeploymentForSourcePackage;
/**
* Returns the packages in the project config that have an artifact
*/
private getPackagesToDeploy;
}
export interface PackageInfo {
sourceDirectory: string;
sfpPackage: SfpPackage;
versionInstalledInOrg?: string;
isPackageInstalled?: boolean;
}
export interface DeploymentResult {
scheduled: number;
queue: any[];
packagesToPackageInfo: {
[p: string]: PackageInfo;
};
deployed: PackageInfo[];
failed: PackageInfo[];
error: any;
}