自动构建的触发条件和设定方法
在 GitHub 等第三方代码托管平台上,支持让代码根据分支(branch
)和标签(tag
)来区分不同的版本,以更好地管理代码的修改。同样地, DaoCloud 也提供基于代码分支和代码标签的自动构建触发器,使得自动构建变得更灵活。
根据代码分支来触发持续集成
在 Git 的优秀实践中,我们建议在 develop
分支中进行功能的增加、修改等操作,当完成一个功能的开发或更新以后,再将 develop
分支中修改的 commit
合并(merge
)到 master
分支中,这样就可以做到代码版本的更新迭代井然有序。
更多优秀的 Git 实践请参照「git-flow」。
这种代码管理方式可以运用到 DaoCloud 中来。因为在代码迭代的过程中,并非每一次的修改都需要进行持续集成的测试;那么我们就可以将持续集成的触发机制定位——当 master
分支发成修改时,便触发持续集成。
第一步
打开需要修改的项目中的「设置」页面,并看到「持续集成触发器」栏目。
第二步
点击「修改」按钮,页面出现修改对话框。
第三步
我们将「分支名称」栏目更改成 master
,并点击「确定」按钮。
这样,该代码库只有在 master
分支出现变更时才会触发持续集成。
默认情况下,所有分支发生 commit 操作时,都会触发持续集成,建议保留这样的设置,因为很多开发阶段是在
develop
或开发者自定义的分支中完成。
根据代码标签(tag
)来触发自动构建
自动构建是持续集成的目的,但自动构建的触发频率应该要比持续集成更低,比如说发布版本的时候才会触发自动构建。
一个良好的代码版本迭代流程应该是这样的:
DaoCloud 可以让代码项目在打上 tag
的时候触发自动构建,而这个 tag
也是可以定下规则的。我们推荐使用 release-***
的形式表示一次功能发布,比如 release-v0.1.0
。
第一步
打开需要修改的项目中的「设置」页面,看到「自动构建触发器」栏目。
第二步
点击「修改」按钮,页面出现修改对话框。
第三步
我们将「tag 名称」栏目更改成 release-(.*)
,并点击「确定」按钮。
完成 DaoCloud 项目的设置后,以后若需要进行自动构建,则在项目代码中添加符合 release-(.*)
的标签即可以。
$ git tag -a release-v0.1.0 -m "Release v0.1.0: Update ...."
请注意,在配置自定义持续集成和自动构建时,DaoCloud 支持正则表达式方式的通配符,用户可以约定分支和 tag 的名称,来灵活触发 DaoCloud 的持续集成和镜像构建。
更加复杂的镜像构建和持续集成触发逻辑
为了满足用户的特殊场景需求,DaoCloud 提供了非常灵活的触发逻辑,如下图: