首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS云模板与jenkins构建阶段的代码形成模板

AWS云模板与jenkins构建阶段的代码形成模板
EN

Stack Overflow用户
提问于 2019-11-13 07:50:56
回答 1查看 365关注 0票数 1

我需要为管道编写一个CFT,并将Jenkins集成用于构建/测试。我找到这个文档来为jenkins阶段设置ActionTypeId。但是这个文档没有指定如何设置server urljenkins服务器。而且,我也不清楚在哪里给Jenkins提供程序命名为。它是在ActionTypeId还是在configuration属性中?

我在互联网上也找不到这个用例的例子。

请为使用AWS Cloudformation模板安装AWS Codepipeline的Jenkins操作提供程序提供一个适当的示例。

下面是我从上面的文档中学到的cft样本中的一节。

代码语言:javascript
复制
"stages": [
    {
        "name": "Jenkins",
        "actions": [
            ...
            {
                "name": "Jenkins Build",
                "actionTypeId": {
                    "category": "Build",
                    "owner": "Custom",
                    "provider": "Jenkins",
                    "version": "1"
                },
                "runOrder": 2,
                "configuration": {
                    ???
                },
                ...
            }
        ]
    },
    ...
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 06:04:17

我所缺少的信息是,我需要创建一个习俗行动来使用Jenkins作为我的codepipeline的Action。

首先,我添加了以下自定义操作:

代码语言:javascript
复制
JenkinsCustomActionType: 
    Type: AWS::CodePipeline::CustomActionType
    Properties: 
        Category: Build 
        Provider: !Ref JenkinsProviderName
        Version: 1
        ConfigurationProperties: 
            - 
                Description: "The name of the build project must be provided when this action is added to the pipeline." 
                Key: true 
                Name: ProjectName 
                Queryable: false
                Required: true 
                Secret: false 
                Type: String 
        InputArtifactDetails: 
            MaximumCount: 5
            MinimumCount: 0 
        OutputArtifactDetails: 
            MaximumCount: 5
            MinimumCount: 0 
        Settings: 
            EntityUrlTemplate: !Join ['', [!Ref JenkinsServerURL, "/job/{Config:ProjectName}/"]]
            ExecutionUrlTemplate: !Join ['', [!Ref JenkinsServerURL, "/job/{Config:ProjectName}/{ExternalExecutionId}/"]]
        Tags:
            - Key: Name
              Value: custom-jenkins-action-type

jenkins服务器URL是在自定义操作的settings中提供的,Jenkins提供程序的名称是为Provider提供的。这是我最初遇到的问题。

然后按照以下方式配置管道阶段:

代码语言:javascript
复制
DevPipeline:
    Type: AWS::CodePipeline::Pipeline
    DependsOn: JenkinsCustomActionType
    Properties:
        Name: Dev-CodePipeline
        RoleArn:
            Fn::GetAtt: [ CodePipelineRole, Arn ]
        Stages:
            ...
            - Name: DevBuildVerificationTest
              Actions:
                  - Name: JenkinsDevBVT
                    ActionTypeId:
                        Category: Build
                        Owner: Custom
                        Version: 1
                        Provider: !Ref JenkinsProviderName
                    Configuration:
                        # JenkinsDevBVTProjectName - Jenkins Job name defined as a parameter in the CFT
                        ProjectName: !Ref JenkinsDevBVTProjectName
                    RunOrder: 4

必须在管道之前创建自定义操作。因此DependsOn: JenkinsCustomActionType

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58832506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档