从零打造自己的CI/CD系统|使用Jenkins作为操作入口

2020-07-03 09:56:52 浏览数 (1)

从零打造自己的CI/CD系统|使用Jenkins作为操作入口

通常情况下,并不是每个人都能熟练操作命令行,特别重要的一点是很容易发生误操作,今天我们就来实现下如何提供一个web界面让用户操作,自己开发可能时间成本有点高(看功能复杂度吧),这里我们直接使用Jenkins来实现。

github仓库地址[1]

环境需求

参考上几篇篇文档

从零打造自己的CI/CD系统|php项目部署v1版本

从零打造自己的CI/CD系统|php项目部署v2版本

从零打造自己的CI/CD系统|php项目部署v3版本

jenkins插件准备

•Active Choices[2]•Git[3]

jenkins设置

效果图

我们把环境,分支和执行动作抽出来作为动态传参的形式来体现,其他的参数全部采用落地到配置文件的方式实现。具体效果如如下图所示:

动态选项设置

这里的实现是groovy的简单代码实现,感兴趣的小伙伴可以去看下官方文档。

分支选择

git_repo换成你的仓库地址即可,尽可能是ssh方式,前提是确保发布机器可以通过ssh方式访问你的代码托管平台

代码语言:javascript复制
def gettags = ("git ls-remote -h git_repo").execute()
gettags.text.readLines().collect { it.split()
[1].replaceAll('refs/heads/', '')  }.unique()
动作选择

这里支持的动作是发布和回滚两个,当然如果你想扩展也可以,比如实现重启操作(选择一键重启所有机器,还是选择性的重启某台机器等)

代码语言:javascript复制
return [
"deploy",
"rollback",
]

后续跟进文档

•回滚roles操作的编写•如何秒级别创建job并关联对应的项目的palybook文件•总结篇

总结

今天是连更的第32天,坚持下来真的是有点难度,这里要感谢我媳妇和我家娃,要不然真的是没时间去写东西,尽可能的每天写的都精简些,避免长篇大论,多讲解些细节性的东西, 另外要提的一点是,甭管是自己开发的还是结合开源工具组装出来的产物,一定是要让别人使用的时候足够简单,并不是每个人都会按照你的设定去操作,不要沦落到互骂傻逼的场景。

引用链接

[1] github仓库地址: https://github.com/zhuima/kylin [2] Active Choices: https://plugins.jenkins.io/uno-choice/ [3] Git4.2.2: https://plugins.jenkins.io/git/

0 人点赞