如何在 TFS Build 中重现 old/previous 个构建?
How to reproduce old/previous builds in TFS Build?
环境:
- TFS 2018,源代码在 TFS Git
- 开发人员正在使用类似 gitflow 的工作流程(主要、开发和短期功能分支)
- 有一个构建定义用于 CI(脱离开发分支)
- ... 另一个用于发布(离开主分支)
- 随着项目的发展构建定义得到更新(新步骤等)
允许复制以前构建(或至少是发布构建)的最佳方法是什么? (以防万一以前制作的建筑在划船事故中丢失)
理想情况下,我需要能够在某处插入版本(例如 8.5.12345.1),按确定并最终接收到与过去相应构建生成的数据相同的数据。
最好的方法是切换到 YAML 构建和发布。这样您的管道就与代码一起进行了版本控制。
如果您不这样做,您可能需要在每次进行重大更改时克隆您的构建和发布。
或者,使用管道中的版本差异视图返回到旧版本或使用 json 使用 API.
创建新定义
升级到 Azure DevOps Servers 2020 将为您提供 Team Foundation Server 2018 中尚不可用的更高级 YAML 功能。
注意:对于真正可重现的构建,您还需要找到一种方法来锁定构建任务本身,TFS 和 Azure DevOps 将自动前滚到给定构建任务的最新次要版本。虽然任务作者应尽量避免在这些次要升级中进行任何重大更改,但并不能保证。您也永远不能依赖任何使用 v2.x
符号的工具安装程序或依赖 latest
的任务。 Azure DevOps 不适合完全可重现的构建。
您现在可以在 YAML 中固定任务版本,如果我没记错的话,这是在 Azure DevOps 2020 中添加的。
You can set which minor version gets used by specifying the full version number of a task after the @
sign (example: GoTool@0.3.1
). You can only use task versions that exist for your organization.
The Tasks docs offer special scripts 固定开箱即用任务的版本。
环境:
- TFS 2018,源代码在 TFS Git
- 开发人员正在使用类似 gitflow 的工作流程(主要、开发和短期功能分支)
- 有一个构建定义用于 CI(脱离开发分支)
- ... 另一个用于发布(离开主分支)
- 随着项目的发展构建定义得到更新(新步骤等)
允许复制以前构建(或至少是发布构建)的最佳方法是什么? (以防万一以前制作的建筑在划船事故中丢失)
理想情况下,我需要能够在某处插入版本(例如 8.5.12345.1),按确定并最终接收到与过去相应构建生成的数据相同的数据。
最好的方法是切换到 YAML 构建和发布。这样您的管道就与代码一起进行了版本控制。
如果您不这样做,您可能需要在每次进行重大更改时克隆您的构建和发布。
或者,使用管道中的版本差异视图返回到旧版本或使用 json 使用 API.
创建新定义升级到 Azure DevOps Servers 2020 将为您提供 Team Foundation Server 2018 中尚不可用的更高级 YAML 功能。
注意:对于真正可重现的构建,您还需要找到一种方法来锁定构建任务本身,TFS 和 Azure DevOps 将自动前滚到给定构建任务的最新次要版本。虽然任务作者应尽量避免在这些次要升级中进行任何重大更改,但并不能保证。您也永远不能依赖任何使用 v2.x
符号的工具安装程序或依赖 latest
的任务。 Azure DevOps 不适合完全可重现的构建。
您现在可以在 YAML 中固定任务版本,如果我没记错的话,这是在 Azure DevOps 2020 中添加的。
You can set which minor version gets used by specifying the full version number of a task after the
@
sign (example:GoTool@0.3.1
). You can only use task versions that exist for your organization.
The Tasks docs offer special scripts 固定开箱即用任务的版本。