Version control 是否可以使用持续集成系统(如Travis CI/Jenkins)基于标签构建发布

Version control 是否可以使用持续集成系统(如Travis CI/Jenkins)基于标签构建发布,version-control,git,continuous-integration,Version Control,Git,Continuous Integration,在阅读并询问如何处理git、Github、分支、版本控制和标记之后,用一个特定的标记来标记软件的新版本似乎是最好的方法 可以假设这样的结构: 提交1 提交2:标记1.0.0 承诺3 承诺4 提交5:标记1.1.0 提交6:标记1.1.0 一旦版本2.0.0发布,很可能会创建一个1.1.x分支来维护1.1版本的修补程序等 现在我想知道如何将其与CI集成,例如Travis 我所知道的是: 连续集成系统(如Travis CI)在对任何分支的每次提交时都会触发,并且每个分支都可以启用/禁用此功能

在阅读并询问如何处理git、Github、分支、版本控制和标记之后,用一个特定的标记来标记软件的新版本似乎是最好的方法

可以假设这样的结构:

  • 提交1
  • 提交2:标记1.0.0
  • 承诺3
  • 承诺4
  • 提交5:标记1.1.0
  • 提交6:标记1.1.0
一旦版本2.0.0发布,很可能会创建一个1.1.x分支来维护1.1版本的修补程序等

现在我想知道如何将其与CI集成,例如Travis

我所知道的是:

  • 连续集成系统(如Travis CI)在对任何分支的每次提交时都会触发,并且每个分支都可以启用/禁用此功能

我正在努力弄清楚,一旦您标记了某个提交,是否有可能启动构建,有人能解释一下这是如何工作的吗?

Travis和持续集成系统背后的想法通常是第一个词:持续。您希望它在每次提交时都运行,因为您的测试应该始终正常工作(除非您知道它们不正常)。在每个标签上运行它不是很像CI,因为它阻止了连续部分的发生,并破坏了它的整个要点

CI允许开发人员在可能被注意到之前捕获bug,即使您的贡献文档说您应该在推送之前通过构建并不意味着人们会倾听。特别是Travis,它允许在每次提交时使用不同的设置进行大量的变化和多个构建,因此您可以测试在本地开发时可能没有想到的情况


如果您真的只想在每个标记上运行它,那么您可以编写构建脚本,以便在没有定义新标记的情况下提前退出。Travis定义了一系列可以帮助您检测的环境变量。

持续集成是将所有开发工作与主开发分支合并,并测试这些更改以尽早发现问题的实践。实际上,您应该继续这样做,因为这将导致所有合并。您所指的问题实际上是连续部署或连续交付。根据您使用的工具集的不同,有不同的选项。在上一天阅读了更多内容后,我可能实际上是在谈论一种连续部署,而不是CI,如果这让任何人感到困惑的话,很抱歉。