vs 团队服务使用提交消息触发构建

Jay*_*Jay 4 octopus-deploy octopack azure-devops

背景

我在 VSTS 中设置了一个项目,它构建我的解决方案并运行 octopack 以将包推送到我的 octopus 部署提要。我正在使用本地构建代理和本地章鱼部署服务器。

构建当前是手动触发的。

该项目经常进行,多次提交。

目前没有使用分支,这有多种原因,它并不理想,但这是我现在必须使用的。

问题

并非所有对项目的提交都应该部署。CI 触发器和计划触发器会导致多个包被推送到 octopus deploy。并非所有这些都将成为候选版本。

我想摆脱手动触发构建。长期目标是让其他人在没有我参与的情况下运行章鱼部署版本。

问题

是否可以使用提交消息触发 VSTS 构建或 octopack?

如果没有,有没有其他方法可以解决这个问题,或者在我可以对分支问题进行排序之前,我是否一直使用手动触发器?

Dav*_*eña 7

现在,在你问这个问题两年后,我就是这样做的:

有一个预定义的构建变量$(Build.SourceVersionMessage),它会给你确切的提交信息,现在官方文档中有记录

还有一个称为条件表达式的功能,这里有更多关于它们的信息

考虑到这一点,您可以创建一个 CI 管道,每次将提交推送到存储库时都会执行该管道,但在您的任务中,您可以在“控制选项”选项卡中创建条件表达式,以执行某种“逻辑”来执行或跳过任务,不会使整个管道失败,如下所示:

测试 CI 管道

在我的情况下,我检查提交是否包含单词 FULLBUILD 如果是这样,我执行任务。

条件: and(succeeded(), contains(variables['Build.SourceVersionMessage'], 'FULLBUILD'))

这些是条件成功或失败时的管道执行日志(不会使整个管道失败:D)。

条件成功: Test-CI-ConditionSucceed

条件失败: 在此处输入图片说明

希望它可以帮助某人:)

  • 这应该设置为正确答案!感谢你的分享! (2认同)