aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
109 lines (108 loc) • 3.46 kB
TypeScript
import { FileSet, IFileSetProducer } from './file-set';
import { StackOutputReference } from './shell-step';
import { Stack } from '../../../core';
/**
* A generic Step which can be added to a Pipeline
*
* Steps can be used to add Sources, Build Actions and Validations
* to your pipeline.
*
* This class is abstract. See specific subclasses of Step for
* useful steps to add to your Pipeline
*/
export declare abstract class Step implements IFileSetProducer {
/** Identifier for this step */
readonly id: string;
/**
* Define a sequence of steps to be executed in order.
*
* If you need more fine-grained step ordering, use the `addStepDependency()`
* API. For example, if you want `secondStep` to occur after `firstStep`, call
* `secondStep.addStepDependency(firstStep)`.
*/
static sequence(steps: Step[]): Step[];
/**
* The list of FileSets consumed by this Step
*/
readonly dependencyFileSets: FileSet[];
/**
* Whether or not this is a Source step
*
* What it means to be a Source step depends on the engine.
*/
readonly isSource: boolean;
private _primaryOutput?;
private _dependencies;
constructor(
/** Identifier for this step */
id: string);
/**
* Return the steps this step depends on, based on the FileSets it requires
*/
get dependencies(): Step[];
/**
* Return a string representation of this Step
*/
toString(): string;
/**
* The primary FileSet produced by this Step
*
* Not all steps produce an output FileSet--if they do
* you can substitute the `Step` object for the `FileSet` object.
*/
get primaryOutput(): FileSet | undefined;
/**
* Add a dependency on another step.
*/
addStepDependency(step: Step): void;
/**
* Add an additional FileSet to the set of file sets required by this step
*
* This will lead to a dependency on the producer of that file set.
*/
protected addDependencyFileSet(fs: FileSet): void;
/**
* Configure the given FileSet as the primary output of this step
*/
protected configurePrimaryOutput(fs: FileSet): void;
/**
* Crawl the given structure for references to StepOutputs and add dependencies on all steps found
*
* Should be called in the constructor of subclasses based on what the user
* passes in as construction properties. The format of the structure passed in
* here does not have to correspond exactly to what gets rendered into the
* engine, it just needs to contain the same data.
*/
protected discoverReferencedOutputs(structure: any): void;
/**
* StackOutputReferences this step consumes.
*/
get consumedStackOutputs(): StackOutputReference[];
}
/**
* Instructions for additional steps that are run at stack level
*/
export interface StackSteps {
/**
* The stack you want the steps to run in
*/
readonly stack: Stack;
/**
* Steps that execute before stack is prepared
*
* @default - no additional steps
*/
readonly pre?: Step[];
/**
* Steps that execute after stack is prepared but before stack is deployed
*
* @default - no additional steps
*/
readonly changeSet?: Step[];
/**
* Steps that execute after stack is deployed
*
* @default - no additional steps
*/
readonly post?: Step[];
}