是否能够忽略/禁用 vNext Build 中的第一步获取源代码?

Posted

技术标签:

【中文标题】是否能够忽略/禁用 vNext Build 中的第一步获取源代码?【英文标题】:Is it able to ignore/disable the first step Get source in vNext Build? 【发布时间】:2018-03-07 09:12:46 【问题描述】:

这是我们的情况——有时我们需要运行 vNext 构建而不需要从 TFS 服务器提取任何源代码。

但我们不想更改工作区映射。是否有相关设置只是在构建定义中忽略或禁用获取源步骤。与任何其他任务不同,“获取源代码”任务会在您创建新的构建定义时自动添加,该任务无法通过右键单击来禁用或删除该任务。

任何建议表示赞赏!

【问题讨论】:

【参考方案1】:

更新:

现在您应该使用以下命令来完全避免同步源:

经典编辑器: agent.source.skip=true

YAML:

steps:
- checkout: none

它无法直接禁用/删除 Get Sources 任务。但是,您可以添加一个变量来实现它:

Build.SyncSources = false

你可以从下面的截图中看到,Get Sources 操作开始了 并在没有从 TFS 版本控制中获取数据的情况下完成

注意: 此变量适用于 TFS 2017 及更高版本/VSTS vNext 版本

更多详细信息请查看这个有用的blog。

【讨论】:

但是,此设置强制将 System.DefaultWorkingDirectory 变量保留为 undefined,这会导致 Path must be a string. Received undefined 错误,例如,尝试执行队列 Jenkins 作业步骤 $(Build.SourcesDirectory) 例如显然也是未定义的。因此,如果您只是在寻找禁用 Get Sources 步骤作为在 100.000 个文件构建上赢得一些时间的临时解决方案,它可能会与您的其他构建步骤混淆......但这个解决方案可能确实适用于其他情况。 如果我们只想在多阶段构建中的特定阶段跳过这一步怎么办? @itsho 你有解决方案吗?我也想只在一个阶段禁用它。 @MehulParmar 是的 - 请参阅下面的答案 - ***.com/a/56374099/426315【参考方案2】:

我尝试使用agent.source.skip = true(而不是Build.SyncSources = false),

而且它似乎保留了变量。

在这里找到:https://github.com/Microsoft/azure-pipelines-agent/issues/1465

【讨论】:

以上是关于是否能够忽略/禁用 vNext Build 中的第一步获取源代码?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET vNext - 动态编译代码不适合我

消息:SQL Server 2017(vNext)的第三个公开的CTP(社区技术预览版)发布了

SonarQube,TFS 2015 Vnext build -错误:JAVA_HOME 存在但不指向有效的 Java 主文件夹。在那里找不到“\bin\java.exe”文件

TFVC:在 vnext 构建期间删除工作区失败

如何禁用 build.gradle 中的任务

如何安装 asp.net vnext KRuntime 的自定义版本?