GSoC

传统的提交插件是谷歌Summer of Code项目。特别感谢导师Gareth Evans、Kristin Whetstone、Olivier Vernin和Allan Burdajewicz。

什么是常规提交

根据官方网站,传统的提交是“为提交消息添加人类和机器可读含义的规范”。

常规提交是提交消息之上的一种轻量级约定。

下表显示了常规的提交约定提供的主要结构元素。

结构元素 例子

烦人的事

任务:提高日志

修复

修复:小错误修复

的壮举

专长:添加一个新特性

断变化

断变化:重装

为什么传统的提交

随着CI/CD世界越来越趋向于完全自动化和最小的人工交互,需要能够完全自动化发布。传统的提交允许在提交消息之上使用自动化系统。这些系统可以“真正地”自动化发布,几乎不需要人工交互。

该公约与语义版本控制.让我们举一个例子,一个maven项目当前的版本是1.2.0.下表显示了常规提交如何根据提交的类型改变版本。

提交消息 版本撞 SemVer等效

任务:提高日志

1.2.01.2.0

没有凹凸版

修复:小错误修复

1.2.01.2.1 "

补丁版本的增量

专长:添加一个新特性

1.2.01.3.0

次要版本中的增量

断变化:重装

1.2.02.0.0

主版本中的增量

传统的提交插件

常规的提交插件是一个Jenkins插件,它可以通过编程来确定git存储库的必威国际有限公司下一个语义版本:

  • 最后标记版本

  • 提交消息日志

  • 项目的当前版本

它是如何工作的?

插件将从最新的标签或项目的当前版本读取提交消息,直到最新的提交。使用此信息,它将决定该特定项目的下一个语义版本是什么。

支持项目类型?

目前,插件可以从以下项目类型的各种配置文件读取当前版本:

项目类型 配置文件(s)阅读

Maven

pom.xml

Gradle

build.gradle

使

Makefile

Python

setup . py

setup.cfg

pyproject.toml

Charts.yml

节点(NPM)

package.json

如何请求项目类型的支持?

请随意开一期关于GitHub库的插件。

如何使用插件

推荐的使用插件的方法是添加一个步骤必威国际有限公司詹金斯管道项目

nextVersion ()是要使用的管道步骤。

例如:

{stage('Hello') {steps {echo "next version = ${NEXT_VERSION}"}}}}

提示:管道步骤也可以在Snippet Generator的帮助下生成。请在下拉的Sample Step中选择“nextVersion”,然后点击“Generate Pipeline Snippet”

该插件在使用JEP-229的每个特性上都发布了。

该插件可从插件的网站

演示

你可以在GSoC期中考展示的演示中看到插件的运行

下一个步骤

  • 支持预发布信息。例子:1.0.0-alpha1.0.0-beta

  • 支持构建元数据。例子:1.0.0-beta + exp.sha.5114f85

  • 可选地将计算出来的“下一个版本”写入项目的配置文件。例子:pom.xml对于maven项目,setup . pypython。

反馈

我们很乐意听到你对插件的反馈和建议。

请联系插件GitHub库,git引导或开始讨论community.必威国际有限公司jenkins.io

关于作者
Aditya斯利瓦斯塔瓦

阿迪提亚是一个受好奇心驱使的人,努力为现实世界的问题找到巧妙的解决方案。他是一个开源爱好者和终身学习者。

讨论