Class CodeCommitSourceAction

java.lang.Object
software.amazon.jsii.JsiiObject
software.amazon.awscdk.services.codepipeline.Action
software.amazon.awscdk.services.codepipeline.actions.Action
software.amazon.awscdk.services.codepipeline.actions.CodeCommitSourceAction
All Implemented Interfaces:
IAction, software.amazon.jsii.JsiiSerializable

@Generated(value="jsii-pacmak/1.104.0 (build e79254c)", date="2024-11-22T02:23:58.962Z") @Stability(Stable) public class CodeCommitSourceAction extends Action
CodePipeline Source that is provided by an AWS CodeCommit repository.

If the CodeCommit repository is in a different account, you must use CodeCommitTrigger.EVENTS to trigger the pipeline.

(That is because the Pipeline structure normally only has a RepositoryName field, and that is not enough for the pipeline to locate the repository's source account. However, if the pipeline is triggered via an EventBridge event, the event itself has the full repository ARN in there, allowing the pipeline to locate the repository).

Example:

 // Source stage: read from repository
 Repository repo = Repository.Builder.create(stack, "TemplateRepo")
         .repositoryName("template-repo")
         .build();
 Artifact sourceOutput = new Artifact("SourceArtifact");
 CodeCommitSourceAction source = CodeCommitSourceAction.Builder.create()
         .actionName("Source")
         .repository(repo)
         .output(sourceOutput)
         .trigger(CodeCommitTrigger.POLL)
         .build();
 Map<String, Object> sourceStage = Map.of(
         "stageName", "Source",
         "actions", List.of(source));
 // Deployment stage: create and deploy changeset with manual approval
 String stackName = "OurStack";
 String changeSetName = "StagedChangeSet";
 Map<String, Object> prodStage = Map.of(
         "stageName", "Deploy",
         "actions", List.of(
             CloudFormationCreateReplaceChangeSetAction.Builder.create()
                     .actionName("PrepareChanges")
                     .stackName(stackName)
                     .changeSetName(changeSetName)
                     .adminPermissions(true)
                     .templatePath(sourceOutput.atPath("template.yaml"))
                     .runOrder(1)
                     .build(),
             ManualApprovalAction.Builder.create()
                     .actionName("ApproveChanges")
                     .runOrder(2)
                     .build(),
             CloudFormationExecuteChangeSetAction.Builder.create()
                     .actionName("ExecuteChanges")
                     .stackName(stackName)
                     .changeSetName(changeSetName)
                     .runOrder(3)
                     .build()));
 Pipeline.Builder.create(stack, "Pipeline")
         .crossAccountKeys(true)
         .stages(List.of(sourceStage, prodStage))
         .build();
 
  • Constructor Details

    • CodeCommitSourceAction

      protected CodeCommitSourceAction(software.amazon.jsii.JsiiObjectRef objRef)
    • CodeCommitSourceAction

      protected CodeCommitSourceAction(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CodeCommitSourceAction

      @Stability(Stable) public CodeCommitSourceAction(@NotNull CodeCommitSourceActionProps props)
      Parameters:
      props - This parameter is required.
  • Method Details

    • bound

      @Stability(Stable) @NotNull protected ActionConfig bound(@NotNull software.constructs.Construct _scope, @NotNull IStage stage, @NotNull ActionBindOptions options)
      This is a renamed version of the IAction.bind method.

      Specified by:
      bound in class Action
      Parameters:
      _scope - This parameter is required.
      stage - This parameter is required.
      options - This parameter is required.
    • getVariables

      @Stability(Stable) @NotNull public CodeCommitSourceVariables getVariables()
      The variables emitted by this action.