如何使用持续集成?

持续集成在现代软件研发流程中,扮演了十分重要的角色。通过对每次提交的代码不断进行自动化的单元测试、代码检查、编译构建、契约测试,甚至自动部署,持续集成大大降低了开发人员的工作负担,减少了不必要的重复劳动,提升代码质量和开发效率。毫无疑问,持续集成是开发者和研发团队的福音。

然而想在项目和团队中实施持续集成,却不是一件简单的事情。CODING 推出的持续集成beta服务,旨在让研发团队能够更容易地使用持续集成。

快速开始

Hello World

进入持续集成页面,按照引导点击『开始持续集成』『简单示例』『确认创建』,并稍等片刻,就可以看到运行中的集成构建,以及各个阶段(stage)的步骤和命令行输出。

图片

图片

图片

图片

CODING 会把示例中的 Jenkinsfile 提交到代码仓库中,以便追踪和修改。

图片

脚本语法

CODING 的持续集成使用 Jenkins 作为运行核心,并以服务的方式提供。因此,CODING 的持续集成使用的是 Jenkinsfile 描述持续集成。Jenkinsfile中文文档可以点击这里

简单解释示例 Jenkinsfile 中的指令:

  • pipeline: 推荐以 pipeline 包裹整个脚本。
  • agent: 构建环境。我们提供了 java、python、ruby 等若干种语言的构建环境,需要在 agent 中以 label 的方式描述。详见下文 构建环境。
  • stage(s): 用以划分各个集成阶段。
  • steps: 具体的每一个操作都叫做一个 step
  • sh: 执行命令,比如 sh 'python -V' sh 'date' 等。
  • checkout: 克隆仓库代码。检出 阶段的目的就是把仓库代码克隆到本地,如果需要克隆代码,请保留该阶段。
  • 更多…常见 Jenkinsfile 指令如:
    archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
    junit 'build/reports/**/*.xml'
    
     (CODING 后续会努力提供更多帮助)
    

触发方式

默认的触发正则包括了所有的分支标签

图片

可以修改正则增加更多限制,如:

^refs/(heads|tags)/ci-.+$

仅对以 ci- 开头的分支和标签进行构建。

构建环境

即 agent 的 label:

  • java-8
  • python-2.7
  • python-3.5
  • go-1.7
  • node-10
  • php-7.0
  • php-7.1
  • ruby-2.3
  • default: 包括了 java, go, node, ruby, python 等。(目前不包含node)

需要更多环境,请发邮件到support@coding.net联系运营小姐姐提出要求。

镜像优化

为了帮助构建更快,maven、gradle、npm、python、ruby默认使用了腾讯云的源https://mirrors.cloud.tencent.com/。php目前支持了其他国内的源(https://packagist.phpcomposer.com)。

相关文章