import { Cancel, Goals, Queue } from "@atomist/sdm"; export interface StartupPhase { cancelGoal?: Cancel; queueGoal?: Queue; startupGoals?: Goals; } /** * Goals that react to delivery starting, which nothing else waits on. * Useful to update cached data, alert observers etc. Can also be used * to initiate slow reporting processes that do not require the ability * to block delivery. */ export interface DeliveryStartGoals { deliveryStartedGoals?: Goals; } /** * Project check goals */ export interface CheckPhase { checkGoals?: Goals; } export interface BuildPhase { buildGoals?: Goals; testGoals?: Goals; } export interface ContainerPhase { containerBuildGoals?: Goals; } /** * Single or phased deploy */ export interface DeployPhase { /** * If this is set stagedDeploy should not be set */ deployGoals?: Goals; } /** * Phase to publish and release artifacts or create tags */ export interface ReleasePhase { releaseGoals?: Goals; } /** * Standard delivery phases. * All goals should be constructed ahead of time and selected as appropriate for the given push, * rather than created on the fly. */ export declare type DeliveryPhases = StartupPhase & DeliveryStartGoals & CheckPhase & BuildPhase & ContainerPhase & ReleasePhase & DeployPhase;