关于我的

我是Abhishek Gautam,来自印度那格浦尔Visvesvaraya国立理工学院的三年级学生。我是学校ACM分会和谷歌学生开发者俱乐部的成员。我热爱自动化。

项目总结

这是GSoC 2018项目。

该项目旨在开发拉出请求作业插件。用户应该能够使用放置在git存储库的根目录中的yaml文件配置作业类型,作为Pull请求的主题。只要创建或更新拉动请求,插件应与位Bucket,GitHub,Gitlab等各种平台交互。

插件检测某些类型的报告在传统地点的存在,并自动发布它们。如果报表没有出现在它们各自的常规位置,则可以在YAML文件中配置报表的位置。

对社会的好处

  • 项目管理员将能够更轻松地处理pull请求构建。

  • 可以以简洁的声明性格式写入拉拔请求的构建规范。

  • 构建报告将自动发布到Github, Bitbucket等。

  • 构建状态更新将自动发送到git服务器。

  • 用户将不必处理管道代码。

  • 如果没有合并冲突或构建故障,则PR可以合并到目标分支中。

第一阶段博客文章

实现到目前为止

发布了插件的Alpha版本。它支持多分支管道的所有特性,并提供以下特性。

构建描述是通过存储在SCM回购中的YAML文件定义的。这个插件将依赖于GitHub插件,Bitbucket插件,Gitlab插件,如果用户将使用各自的平台为他们的仓库。

  1. 将YAML转换为声明式管道:编写一个类YamlToPipeline,它将加载“Jenkinsfile”。必威国际有限公司并使用PipelineSnippetGenerator类生成声明式管道代码。

  2. 结果报告,目前只支持xml报告类型。

  3. 从目标分支使用Yaml文件(Jenk必威国际有限公司insfile.yaml)。

  4. Git Push步骤:将拉拉请求的更改推向目标分支。这是使用Git-Plugin实现的,PushCommand用于从Git-Plugin使用。用于与GitHub,Bitbucket等交互的CredentialID,分支名称和存储库URL将自动从“分支源”(用户必须填充作业配置UI中的分支源的此详细信息)。(你可以看到如何运行演示

  5. StepConfigurator:为Jenkins中所有受支持的步骤生成管道代码。必威国际有限公司这是使用Jenkins配置即必威国际有限公司代码插件(JCasC插件)配置一个特定的步骤对象,然后将该步骤对象传递给Snippetizer.Object2Groovy()方法生成该步骤的脚本。

必威国际有限公司jenkinsfile.yaml示例

对于第1阶段原型演示,使用了以下yaml文件。请注意,当我们正式化Yaml格式定义时,此格式可能会在项目的下一个阶段更改。

#Docker Image Agent示例代理标签my_labelCustomWorkspace.path_to_workspacedockerImagemaven: 3-alpinearg游戏- v / tmp: / tmp工具:maven: maven_3.0.1 JDK: jdk8配置#如果构建成功,则将PR更改为目标分支。#默认值为falsepushPrOnSuccess#值得信任的用户批准拉请求prApprovers: -username1-username2-username3环境变量variable_1value_1variable_2value_2# Credentials只包含两个字段。credentialId必须出现在Jenkins凭证中必威国际有限公司证书: -credentialId: fileCredentialId多变的文件#在用户脚本中,可以通过login_usr和login_psw访问用户名和密码#作为环境变量-credentialId: dummyGitRepo多变的登录阶段: -名称:stage1代理任何步骤: -承宪:“脚本/你好”-睡眠:time: 2单位:SECONDS-睡眠:2-junit:testresultpublisher: "target/**.xml" allowEmptyResults: true testdatappublisher: - automatetestdatappublisher - JunitResultPublisher: urlOverride: "urlOverride"# Post section for“stage1”。詹金斯提供的所有条件必威国际有限公司支持声明式管道帖子失败: -承宪:“脚本/你好”#外部张贴部分。就像声明式管道。帖子总是: -承宪:“脚本/你好”

编码阶段2计划(已完成)

  • 决定适用于JenkinsFile.yaml的适当的YAML格式必威国际有限公司

  • 为SPRP插件创建步进配置器。必威国际有限公司詹金斯- 51637.这将允许用户使用Jenkinsfile.yaml中的Pipeline步骤。必威国际有限公司

  • 在生成的PipelineSnippetGenerator类中自动生成缩进。

  • 写入插件的测试。

编码第三阶段计划

  1. 测试多分支管道功能支持:

    1. 支持webhooks (必威国际有限公司詹金斯- 51941

    2. 检查可信的人是否已经批准了一个pull请求并开始相应的构建(必威国际有限公司Jenkins-52517

  2. 完成文档(必威国际有限公司Jenkins-52518

  3. Release 1.0 (必威国际有限公司Jenkins-52519.

  4. 插件概述博客文章

在发布后编码阶段3计划

  1. 支持“when”声明式管道指令(必威国际有限公司Jenkins-52520.

  2. nice2have:支持分层报告类型(必威国际有限公司詹金斯- 52521

  3. 添加单元测试、JenkinsRu必威国际有限公司le测试和ATH测试(必威国际有限公司詹金斯- 52495必威国际有限公司詹金斯- 52496

  4. PR关闭时自动清理工作区(必威国际有限公司Jenkins-51897

  5. 将代码段生成器重构为扩展(必威国际有限公司詹金斯- 52491

第二阶段评估演示视频

视频:

第二阶段评估演示幻灯片

关于作者
阿布Gautam

Abhishek是来自印度纳格尔纳格尔州Visvesvaraya国家理工学院的第三年计算机科学学生。他为他的大学技术节做了一些网站项目。他也是一个常规的竞争计划者(Codechef的Abhishekg1128)。他也完成了两个实习作为游戏程序员。他是他的大学的ACM章和谷歌学生开发者俱乐部的成员。他对自动化的兴趣是他参与Jenkins Gsoc 2018计划的课程。必威国际有限公司