chippyash/semantic-version-updater

用于在Jenkins构建期间更新版本标签的工具

1.0.0 2021-05-22 10:43 UTC

This package is auto-updated.

Last update: 2024-09-22 18:37:28 UTC


README

构建链工具,用于更新PHP包的语义版本

PHP版本支持

随着对PHP < V8的库支持逐步退出,我已决定移除对 < V8 的支持。如果您仍然需要 < V8 支持,请使用 < 1 的标记版本,并自行构建软件包。V1+ 仅支持PHP8。

质量保证

PHP 8 Build Status Test Coverage

上述徽章代表当前的开发分支。一般来说,除非测试、覆盖率和可用性令人满意,否则我不会推送到GitHub。在某些短时间内可能并非如此;在休假期间,需要为其他下游项目编写代码等。如果您需要稳定代码,请使用标记版本。

请参阅测试合同

如何使用

初始化

对于新包

在composer.json文件的dev-requires部分添加"chippyash/semantic-version-updater":"*"

运行composer update

运行vendor/bin/vupdate init以在项目根目录中创建一个新的VERSION文件

运行

    git commit -am"add vupdate"
    
    git tag 0.0.0
    
    git push origin master --tags

手动更新版本和git标签

在初始开发期间,您可能希望在包的不同位置进行标记。您可以通过以下方式保持git标签版本和VERSION文件中的版本同步

bin/vupdate && cat VERSION | xargs git tag

别忘了将您的标签推送到远程仓库。

一旦您完成初始开发,并认为您可以发布,您可以在其第一个“真实”发布版本中对包进行标记。您可以选择运行bin/vupdate -pbcbreak来更新版本号的主(M.n.n)部分,或者运行bin/vupdate -o 1.0.0来强制版本。一行代码可以是

bin/vupdate -pbcbreak && cat VERSION | xargs git tag && git commit -am"First release" && git push origin master --tags

使用bin/vupdate -h查看帮助屏幕。

使用bin/vupdate --version查看命令版本号。

将其集成到您的构建链中

该工具的真实目的是将其用于构建链中,更新标签,推送到git,然后更新Satis/Composer(或其他仓库)以通知它有新版本可用。

下载此仓库的zip文件并解压缩。将bin/vupdate文件移动/复制到您的PATH上的某个位置,例如/usr/local/bin/vupdate。如果您只想在本地机器上使可执行phar文件全局可用,也可以这样做。

这是一个我们用于构建链中更新版本的jenkins作业,它依赖于分支名称前缀

VERSIONER=/usr/local/bin/vupdate
GIT=git

cd "${workingDir}";
${GIT} checkout ${gitBranch};
lastCommit=$(git log --branches | grep 'Merge pull request.* to master' | head -1)

if [[ $lastCommit == *"feature/"* ]] || [[ $lastCommit == *"release/"* ]]
then
        ${VERSIONER} -p feature;
        verType="Feature";
else
        ${VERSIONER};
        verType="Patch";
fi;


${GIT} commit -am"CD $verType Version update: $lastCommit";
cat VERSION | xargs ${GIT} tag;
${GIT} push origin ${gitBranch} --tags;

$workingDir和$gitBranch参数从主构建作业发送到作业。$gitBranch默认为'master';

开发

按常规克隆仓库。

创建一个功能分支

运行composer update以拉取外部库。

按常规提交您的更改并将其推送到仓库并创建一个pull请求。

make文件

运行make将重新构建bin/vupdate phar文件并将更改推送到仓库。因此,只有当您对代码仓库具有写入权限时,它才有任何用途。

您可以使用make build仅构建bin/vupdate

注意

如果在使用make构建工具时遇到 creating archive "/var/lib/jenkins/jobs/ci-version-updater-builder/workspace/bin/vupdate.phar" disabled by the php.ini setting phar.readonly 或类似的错误,请编辑您的php cli ini文件,并将 phar.readonly = Off 设置为。

致谢

我多年前编写了vupdate.php脚本。当时它依赖于来自 Kevin Herrara 的 'herrera-io/version' 包。他已经放弃了这个包,所以我将其原始代码包含在本包的源代码中。它仍然可以正常工作。您可以在 'src' 目录中找到它,以及他的原始测试在 'test' 目录中。测试合同可以在 docs/Test-Contract.md 中找到。他对代码有宽松的许可协议,因此如果您需要在其他应用程序中使用原始代码,请随意使用这个包来访问它。

Makefile管理的构建例程依赖于 Box。bin目录中有一个box phar发行版,它将被Makefile使用。