UNPKG

@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
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; }