做者:CODING - 朱增辉html
make 工具很是强大,配合 makefile 文件能够实现软件的自动化构建,可是执行 make 命令依然须要经历手动输入执行、等待编译完成、将目标文件转移到合适位置等过程,咱们真正关心的是最终的输出,却在这些中间过程上浪费了不少时间。利用 CODING 持续集成功能能够实现自动触发构建,构建全程自动化,无须分心看护,节省时间。git
本文经过一个 C 语言 + Makefile Demo 项目讲解如何使用 CODING 持续集成功能建立构建计划,自动触发构建,以及如何将生成的目标文件发布到 CODING generic 制品库。正则表达式
本文涉及到如下工具,请确认已存在,或者根据连接的文档进行安装。shell
另外,您还需准备一个 CODING 项目。编辑器
我已经准备了一份简单的示例代码,使用 make 工具构建 Hello-world 程序。ide
// hello.c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
您能够经过下面的命令克隆到本地。工具
git clone https://e.coding.net/coding-public/demo-c-make.git
仓库中还包含了一个 makefile 文件,定义了简单的规则来完成软件构建。ui
all: hello hello: hello.o gcc -o hello hello.o hello.o: hello.c gcc -c hello.c clean: rm -rf hello.o hello
您能够在本地执行 make 命令以验证构建正常。url
下面咱们正式开始经过一个 Demo 演示 CODING 平台持续集成功能的使用。.net
为了方便随时使用构建出来的目标文件,咱们将构建物存储到 CODING 平台制品库,所以须要先建立合适的制品仓库,这里建立 generic 仓库比较合适。
从左侧导航栏打开制品库
。
单击新建仓库,选择 generic 类型,按照提示指定仓库名称,这里仓库名取为 generic。
从左侧导航栏打开持续集成 --> 构建计划
页面,点击新建构建计划配置
建立并配置新的构建计划。在弹出的页面中,输入构建计划名称,选择代码仓库,配置来源
指的的该构建计划的构建脚本存放位置,对于简单的、变更不频繁的脚本可使用静态配置的选项,不然更推荐使用代码仓库中的脚本,这样更加灵活,方便管理
点击使用模板,可根据本身须要选择合适模板,这里选择 简易模板
。
保存构建计划后,系统会自动将构建模板对应的 Jenkinsfile 推送到仓库,默认为 master 分支。
构建脚本定义构建过程的具体步骤,是构建计划的核心部分。CODING 平台提供了图形化编辑器方便您快速编写构建脚本。
CODING 持续集成底层基于开源 CI/CD 软件领导者 Jenkins 实现,彻底兼容 Jenkins pipeline 构建脚本语法,根据 Jenkins 官方提供的脚本编写指南,能够实现更复杂的构建任务,CODING 也提供了文本编辑器方便您在线编辑。
代码仓库中已包含一个简单的构建脚本(Jenkisnfile),您能够按照本身的想法参考编写。
// Jenkinsfile pipeline { agent any stages { stage('检出') { steps { checkout([ $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[ url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID ]]]) } } stage('构建') { steps { echo '构建中...' sh 'make' echo '构建完成.' } } stage('发布') { steps { echo '发布中...' codingArtifactsGeneric( files: 'hello', repoName: "${env.GENERIC_REPO_NAME}", version: "${env.GIT_COMMIT}", ) echo '发布完成' } } } } }
构建脚本中的大部份内容都比较容易理解,稍显陌生的是 codingArtifactsGeneric 步骤,这是 CODING 官方提供的插件,方便上传到 CODING generic 制品库。该插件经过环境变量 GENERIC_REPO_NAME 获取仓库名,所以须要配置构建计划设置该变量值。
CODING 持续功能支持多种触发方式包括代码源触发、定时触发、API 触发及手动触发,这几种触发方式能够同时配置互不冲突,其中代码源触发又可配置为推送到指定分支或标签触发,触发方式多样,可知足绝大部分场景须要。
如前言中所说,咱们但愿把更多的精力放在源代码上,尽可能减小构建所带来的干扰,所以这里必不可少的是配置经过代码源触发,经过配置以下正则表达式,能够在推送代码到匹配的分支名时自动触发构建。
^refs/(heads/(release|release-.*|build-.*|feat-.*|fix-.*|test-.*|mr/.*))
执行构建最简单的方式是手动触发构建,选中想要构建的构建计划,单击当即构建会弹出配置窗口,在这里能够配置这次构建使用的参数,单击肯定便可开始构建。
按照步骤四的配置,咱们的构建计划也支持推送的匹配分支触发构建,您能够执行以下命令建立新分支并推送到远端仓库,便可触发构建。
git checkout -b build-ci-test git push origin HEAD
触发后,构建会自动执行,您能够继续作其余事情。
步骤三中定义的构建脚本会将构建出的目标文件发布到 CODING 制品库,若是咱们想要在本地使用也是很方便下载的。在制品仓库中单击文件名便可看到指引页,里面给出了对文件不一样操做的命令。
本文经过一个 C 语言 + makefile 的 Demo 项目讲解了 CODING 持续集成、制品库的简单使用。借由 CODING 平台的这些功能,咱们像是雇了一个永不会累的助手,承担了耗时的构建工做,从而节省了时间,提升了效率。