触发应用标记的构建

时间:2017-05-18 11:32:23

标签: teamcity

我想实现以下目标:

  1. 开发团队中的任何人都会创建一个标记,即Demo_Build_1到dev分支。
  2. TeamCity应该能够检测到这个新标记并仅构建此标记。
  3. 我在VCS配置中启用了“将标签视为分支”复选框。

    我尝试过配置它,但我无法让它正常工作。以下是我的VCS设置: enter image description here
    以下是我如何配置构建触发器: enter image description here

    我不想手动触发构建。我的想法是TeamCity应该能够获取这个新标签并运行构建。任何实现这一目标的指针都会有所帮助。

3 个答案:

答案 0 :(得分:6)

你几乎是对的。您可以使用配置参数teamcity.vcsTrigger.runBuildInNewEmptyBranch=true告诉TeamCity构建标记创建 - https://youtrack.jetbrains.com/issue/TW-43606。否则,当您看到新标记时,TeamCity将不会触发构建。

答案 1 :(得分:2)

由于我没有找到任何完整的答案,我认为我会花费几个小时的时间来完成工作。我没有设法通过编辑分支规范来构建标记。 在VCS触发器和VCS根目录中使用分支规范不会导致构建。添加 - :refs / heads / dev分支规范仍然会在分支中构建提交。作为一种解决方法,可以创建一个未使用的分支,并将其指定为默认分支。这样,由于没有人提交到该分支,因此不会构建常规提交,并且将始终构建标记。

  1. 创建仅监控标记的第二个VCS根
  2. 在第二个VCS根目录的分支规范中,删除您不希望在常规提交上构建的默认分支 添加refs / tags / *
  3. 添加不带分支过滤器的VCS触发器
  4. 这是触发器设置应该是什么样的
  5. 添加魔术配置参数
  6. 这就是我的设置: enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

答案 2 :(得分:0)

我的配置与@jsaddwater的配置非常相似,但略有不同:

版本控制设置>分支过滤器:

fetch('http://localhost:8080/employees/download')
            .then(response => {
                response.blob().then(blob => {
                    let url = window.URL.createObjectURL(blob);
                    let a = document.createElement('a');
                    a.href = url;
                    a.download = 'employees.json';
                    a.click();
                });

版本控制设置> VCS根目录:

  • 默认分支:master

  • 分支规范:

+:*
-:<default>
  • ☑允许在分支规范中使用标签

触发器> VCS触发器:

  • 分支过滤器:(留空

参数

添加或设置值为{true的+:refs/tags/* -:<default> 配置参数。


经过测试并在TeamCity 2019.1.5上工作。