如何解决在 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 举报,一经查实,本站将立刻删除。