与CI工作
问题描述:
自动化的Git版本的工作流程,我有以下的发展设置:与CI工作
- 托管在托管GitLab 自我的Git项目
- GitLab CI运行每次我推时间对某些部门的工作(构建,测试,和皮棉的代码,例如)
到目前为止,一切都很好。但是现在,我想要自动执行某些git任务。例如,假设假设以下发布策略为我的次要版本:
- 在Dev分支,从版本文件中删除-SNAPSHOT版本(
package.json
,pom.xml
...取决于项目),然后提交 - 合并开发成主机和标签的合并提交
vX.Y.Z
- 在开发,凹凸次要版本,并与
-SNAPSHOT
追加它,然后提交 - 触发一个部署脚本(或有获取GitLab CI每当引发了部署CI工作一个vX.YZ标签被推送到主)
我怎么会这样释放脚本集成到我的CI设置?
我知道詹金斯可以做这样的事情,我碰巧有它运行的泊坞窗实例。我也认为我可以在GitLab CI中定义一个脚本来完成这项工作,并使用部署密钥将更改推送到Git仓库。
我要实现的最重要的事情是有版本的自动管理。出于这个原因,我目前有一个节点脚本,用于输入当前的-SNAPSHOT版本并输出发布版本和下一个开发SNAPSHOT版本,自动计算。我知道npm
和maven
有像nom version patch minor
命令,但我要管理版本撞我自己(而不是委托给依赖管理器)。
答
好了,所以这里是我最后只是:
- 我创建用于获取/设置项目的版本,根据其种类,这是我提供的命令行工具命令行参数。它可以帮助我的工具找出获取/设置版本(
package.json
为NPM
类型的项目,pom.xml
为MAVEN
等 - 我创建的执行我的期望释放的工作流程bash脚本,该脚本使用命令行我创建的工具来获取/设置项目版本我的Jenkins发布作业是一个参数化作业,它将项目类型,存储库URL和存储库凭证作为输入,它克隆,更改并将更改推送到Gitlab。 ,我可以建立一个简单的工作对我的每一个项目,触发使用parametrized trigger plugin通用发布工作。这项工作可以选择触发部署到测试环境另一份工作。
- 的发行工作需要一个额外的参数知道哪些(典型值)它必须这样做,无论它是否为空(意思是“做一个预发布”,小的或重要的。