Factory for CodePipeline source steps

This class contains a number of factory methods for the different types of sources that CodePipeline supports.

Hierarchy (view full)

  • Step
    • CodePipelineSource

Implements

Constructors

Properties

dependencyFileSets: FileSet[]

The list of FileSets consumed by this Step

id: string

Identifier for this step

isSource = true

Whether or not this is a Source step

What it means to be a Source step depends on the engine.

Accessors

  • get consumedStackOutputs(): StackOutputReference[]
  • StackOutputReferences this step consumes.

    Returns StackOutputReference[]

  • get dependencies(): Step[]
  • Return the steps this step depends on, based on the FileSets it requires

    Returns Step[]

  • get primaryOutput(): undefined | FileSet
  • 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.

    Returns undefined | FileSet

Methods

  • 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.

    Parameters

    Returns void

  • Add a dependency on another step.

    Parameters

    Returns void

  • Configure the given FileSet as the primary output of this step

    Parameters

    Returns 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.

    Parameters

    • structure: any

    Returns void

  • Parameters

    • output: Artifact
    • actionName: string
    • runOrder: number
    • OptionalvariablesNamespace: string

    Returns Action

  • Return an attribute of the current source revision

    These values can be passed into the environment variables of pipeline steps, so your steps can access information about the source revision.

    Pipeline synth step has some source attributes predefined in the environment. If these suffice, you don't need to use this method for the synth step.

    Parameters

    • name: string

    Returns string

    What attributes are available depends on the type of source. These attributes are supported:

    // Access the CommitId of a GitHub source in the synth
    const source = pipelines.CodePipelineSource.gitHub('owner/repo', 'main');

    const pipeline = new pipelines.CodePipeline(scope, 'MyPipeline', {
    synth: new pipelines.ShellStep('Synth', {
    input: source,
    commands: [],
    env: {
    'COMMIT_ID': source.sourceAttribute('CommitId'),
    }
    })
    });
  • Return a string representation of this Step

    Returns string

  • Returns a CodeCommit source.

    If you need access to symlinks or the repository history, be sure to set codeBuildCloneOutput.

    Parameters

    • repository: IRepository

      The CodeCommit repository.

    • branch: string

      The branch to use.

    • Optionalprops: CodeCommitSourceOptions

      The source properties.

    Returns CodePipelineSource

    declare const repository: codecommit.IRepository;
    pipelines.CodePipelineSource.codeCommit(repository, 'main');
  • Returns a CodeStar connection source. A CodeStar connection allows AWS CodePipeline to access external resources, such as repositories in GitHub, GitHub Enterprise or BitBucket.

    To use this method, you first need to create a CodeStar connection using the AWS console. In the process, you may have to sign in to the external provider -- GitHub, for example -- to authorize AWS to read and modify your repository. Once you have done this, copy the connection ARN and use it to create the source.

    Example:

    pipelines.CodePipelineSource.connection('owner/repo', 'main', {
    connectionArn: 'arn:aws:codestar-connections:us-east-1:222222222222:connection/7d2469ff-514a-4e4f-9003-5ca4a43cdc41', // Created using the AWS console
    });

    If you need access to symlinks or the repository history, be sure to set codeBuildCloneOutput.

    Parameters

    • repoString: string

      A string that encodes owner and repository separated by a slash (e.g. 'owner/repo'). The provided string must be resolvable at runtime.

    • branch: string

      The branch to use.

    • props: ConnectionSourceOptions

      The source properties, including the connection ARN.

    Returns CodePipelineSource

  • Returns an ECR source.

    Parameters

    • repository: IRepository

      The repository that will be watched for changes.

    • Optionalprops: ECRSourceOptions

      The options, which include the image tag to be checked for changes.

    Returns CodePipelineSource

    declare const repository: ecr.IRepository;
    pipelines.CodePipelineSource.ecr(repository, {
    imageTag: 'latest',
    });
  • Returns a GitHub source, using OAuth tokens to authenticate with GitHub and a separate webhook to detect changes. This is no longer the recommended method. Please consider using connection() instead.

    Pass in the owner and repository in a single string, like this:

    pipelines.CodePipelineSource.gitHub('owner/repo', 'main');
    

    Authentication will be done by a secret called github-token in AWS Secrets Manager (unless specified otherwise).

    If you rotate the value in the Secret, you must also change at least one property on the Pipeline, to force CloudFormation to re-read the secret.

    The token should have these permissions:

    • repo - to read the repository
    • admin:repo_hook - if you plan to use webhooks (true by default)

    If you need access to symlinks or the repository history, use a source of type connection instead.

    Parameters

    Returns CodePipelineSource

  • Returns an S3 source.

    Parameters

    • bucket: IBucket

      The bucket where the source code is located.

    • objectKey: string
    • Optionalprops: S3SourceOptions

      The options, which include the key that identifies the source code file and and how the pipeline should be triggered.

    Returns CodePipelineSource

    declare const bucket: s3.Bucket;
    pipelines.CodePipelineSource.s3(bucket, 'path/to/file.zip');
  • 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).

    Parameters

    Returns Step[]