微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 AWS::CodePipeline::Pipeline 中添加更多分支以在每次推送两个特定分支时启动管道

如何解决在 AWS::CodePipeline::Pipeline 中添加更多分支以在每次推送两个特定分支时启动管道

我创建了一个堆栈,其中有用于创建管道的资源,每次在“主”分支上进行推送时都会启动管道:

  CodeCommitBranch:
    Type: String
    Description: branch name
    Default: master
    AllowedValues:
      - develop
      - release
      - master

CodePipeline:
    Type: 'AWS::CodePipeline::Pipeline'
    Properties:
      Name: !Sub '${Constructor}-${ApplicationID}-codepipeline'
      ArtifactStore:
        Location: !Ref CodePipelines3BucketName
        Type: S3
      RestartExecutionOnUpdate: true
      RoleArn: !Sub 'arn:aws:iam::${AWS::AccountId}:role/${CodePipelineRoleName}'
      Stages:
        - Name: Source
          Actions:
            - Name: Source
              ActionTypeId:
                Category: Source
                Owner: AWS
                Provider: CodeCommit
                Version: 1
              Runorder: 1
              OutputArtifacts:
                - Name: SourceArtifact
              Configuration:
                BranchName: !Ref CodeCommitRepoBranch
                PollForSourceChanges: false
                RepositoryName: !GetAtt 
                  - CodeCommitRepo
                  - Name
        - Name: Deploy-Dev
          Actions:
            - Name: Deploy-Dev
              ActionTypeId:
                Category: Build
                Owner: AWS
                Provider: CodeBuild
                Version: 1
              Runorder: 2
              InputArtifacts:
                - Name: SourceArtifact
              OutputArtifacts:
                - Name: DeployArtifactDev
              Configuration:
                ProjectName: !Ref CodeDeployDev
        - Name: Deploy-Int
          Actions:
            - Name: IntPromotionApproval
              ActionTypeId:
                Category: Approval
                Owner: AWS
                Provider: Manual
                Version: 1
              Runorder: 3
            - Name: Deploy-Int
              ActionTypeId:
                Category: Build
                Owner: AWS
                Provider: CodeBuild
                Version: 1
              Runorder: 31
              InputArtifacts:
                - Name: SourceArtifact
              OutputArtifacts:
                - Name: DeployArtifactInt
              Configuration:
                ProjectName: !Ref CodeDeployInt

我想知道是否可以在“开发”分支上发生推送时在启动同一管道的同一资源中添加一个操作。因此,最终管道在“master”和“develop”上都有推送时启动。

解决方法

通常您不会尝试为多个分支使用相同的管道进行构建。触发器是推送到触发 Cloud Watch 事件的分支,该事件反过来启动管道的其余部分。所以尝试从许多不同的分支启动管道是不好的。

,

AWS CodePipeline 尚不支持多分支管道配置。因此,理想情况下,您需要为 df1 <- df substr(df1$site,2,3) <- tolower(substr(df1$site,3)) df1 # site #1 Jpn Tokyo #2 Aus Sydney #3 Chn Beijing res <- rbind(df1,df) res[order(res$site),drop = FALSE] # site #2 Aus Sydney #5 AUS Sydney #3 Chn Beijing #6 CHN Beijing #1 Jpn Tokyo #4 JPN Tokyo 分支创建另一个管道。

您的管道配置了 CloudWatch 事件。 develop 会自动为您的管道配置

CloudWatch event rule

如果您的管道配置了上述事件规则,则它会触发 { "source": [ "aws.codecommit" ],"detail-type": [ "CodeCommit Repository State Change" ],"resources": [ "arn:aws:codecommit:us-west-2:80398EXAMPLE:MyTestRepo" ],"detail": { "referenceType": [ "branch" ],"referenceName": [ "master","develop" ] } } master 分支更改。但是您的管道是为您的主分支配置的。因此,在 CodeBuild 中,您的主分支内容将在 develop 位置

可用

CODEBUILD_SRC_DIR CodeBuild 用于构建的目录路径 (例如,/tmp/src123456789/src)。

要为两个分支使用单个管道,您需要开发并在 CODEBUILD_SRC_DIR 文件中添加您自己的逻辑以检出到开发分支,然后在那里执行构建。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。