是否能够忽略/禁用 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 中的第一步获取源代码?的主要内容,如果未能解决你的问题,请参考以下文章
消息:SQL Server 2017(vNext)的第三个公开的CTP(社区技术预览版)发布了
SonarQube,TFS 2015 Vnext build -错误:JAVA_HOME 存在但不指向有效的 Java 主文件夹。在那里找不到“\bin\java.exe”文件