我正在编写一个Symfony控制台 PHP应用程序,其中在构造函数中获取版本号。。
$app = new Application('myapp', '1.0');我已经发现,在发布新的git标记时,很容易忘记增加版本号。我如何动态地/自动地完成这个任务?
除了这里,我的搜索包装商相当深入,因为我认为这是一个普遍的事情,但没有能够找到任何东西。
我一开始想写一个函数来做这样的事情:
chdir(__DIR__);
shell_exec('git describe --abbrev=0 --tags');但是因为我是全局需要此CLI应用程序和composer。,所以它没有包含源代码的git存储库。
我的下一个想法是我知道我至少可以从作曲家那里得到它
composer global show myname/mypackage但是这会释放出大量的信息,我无法选择只显示版本号。我觉得用regex之类的东西来过滤这一切可能太过分了。还有更好的办法吗?
发布于 2016-10-25 08:19:35
从某个地方提取版本号可能会很困难,因为您可以运行应用程序的旧版本,但是错误地提取了最新的版本号。
您可以将"release.version“文件添加到仅包含版本号的repo中,并将其读取以传递给构造函数。
然后,您可以在提交标记之前使用git钩子(如预提交)来更新该文件。
但是,在分布式系统中不推荐这样做,因为它可能导致出现collisons,但是对于具有专用发布管理器的较小的团队来说,这可能是可以的。在这里阅读:https://wincent.com/blog/automatic-deployment-numbering-in-git和如何为Git repos启用ident字符串?
如果有一个预提交钩子来检查新标记并提醒您增加代码中的版本就足够了;)。
https://stackoverflow.com/questions/40230856
复制相似问题