将文件从 Visual Studio Team Services 中的构建服务器提交回存储库

2024-02-06

我目前正在使用 TFS/Visual Studio Team Services(以前是 VS Online)设置持续集成,并且我正在使用团队基础建设 2015 https://msdn.microsoft.com/en-us/library/vs/alm/build/feature-overview任务。所以不是 XAML 构建。

我正在使用它来构建 Xamarin Android 项目,但我想这相当不敬,

过程应该是这样的:

  • 办理登机手续后:
  • TFS 应该下载源
  • TFS should increment the version number within AndroidManifest.xml
    • 我已经通过为此制作一个 PowerShell 脚本来设法做到这一点。
  • AndroidManifest.xml 文件修改后,应将其提交回 TFS 存储库

然后剩下的,构建部署到 hockeyapp 等

第一步已全部配置,但我在提交部分遇到困难。如何让 TFS 提交文件?我真的没有看到任何适合它的任务。我尝试过使用复制并发布构建工件实用程序 https://msdn.microsoft.com/library/vs/alm/build/steps/utility/copy-and-publish-build-artifacts- 但这似乎不起作用,我什至不确定这是否是正确的实用程序

顺便说一句,我正在使用默认的托管构建代理。任何帮助,将不胜感激


Warning

我确实想指出,在构建过程中检查更改可能会导致 VSTS/TFS 的某些功能无法正常工作。工作项与签入、源和符号生成的关联、从构建到发布的变更的可处理性以及与测试管理器的集成、远程调试,可能不会产生预期的结果,因为构建中记录的变更集/提交可能与实际不匹配来源。这可能会导致意想不到的有趣行为。

此外,如果在构建开始后已提交/签入任何新更改,则可能会在源代码管理中更新未在该版本下实际发布的代码的版本号。

So: 首先,从构建过程中更改源被认为是一种不好的做法。

备择方案

有更好的方法可以做到这一点,一种是使用构建版本(Build_BuildNumber 或 Build_BuildID 变量)。或者你可以使用像 GitVersion 这样的任务 https://marketplace.visualstudio.com/items?itemName=gittools.gitversion根据 git 存储库中的分支和标签生成语义版本。这样,您的构建将生成正确的版本号,并会增加修订版本,以防多次构建相同的源。

我明白,但我仍然想在构建过程中检查我的代码

如果这些事情对您不起作用,并且您仍然想在构建过程中签入更改,您可以使用TFVC 构建任务 https://marketplace.visualstudio.com/items?itemName=jessehouwing.jessehouwing-vsts-tfvc-tasks如果您使用 TFVC 或使用Git 构建工具 https://marketplace.visualstudio.com/items?itemName=ioz.vsts-git-build-tasks将远程添加到本地存储库,然后使用 git 命令行工具提交更改并将更改推送回存储库。

这些扩展需要安装 TFS Update 2。但是您可以使用 tfx commandlien 工具推送各个构建任务。对于 TFVC 任务,流程解释如下 https://github.com/jessehouwing/vsts-tfvc-tasks/wiki/Install-on-TFS-2015.

On mac

在 Mac 上,这会更困难,因为你使用的是 TFVC。我的 TFVC 任务利用 TFS 客户端对象模型和 Powershell 与 TFS 服务器进行通信。这tf.exe当您处于构建上下文中时,该工具甚至无法在 Windows 上运行,这就是我需要直接调用 VersionControlServer 对象的原因。鉴于我依赖这些技术,这些任务将无法在 Mac 或 Linux 代理上运行。

您可以尝试看看是否团队资源管理器无处不在 X 平台命令行 https://www.microsoft.com/en-us/download/details.aspx?id=47727从构建代理工作(使用 shell 脚本)。我无法在实际的 Mac 上测试这一点。

考虑到项目的跨平台性质,我建议迁移到 Git,它集成到 XCode 和 Android Studio 中,从而更轻松地制作本机 UI 或在本机库之上进行构建。

替代方案2

您可以设置一个构建,对代码进行所需的更改,然后签入修改后的代码。然后让 (CI) 构建运行 Android,并使用修改后的代码构建 Mac。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从 Visual Studio Team Services 中的构建服务器提交回存储库 的相关文章

  • ng run project:deploy - 项目目标不存在

    我有一个 Angular Web App 的工作生产版本 我的 Azure 帐户 免费套餐 上有一个有效订阅 其中包含 AppService 计划 应用服务 资源组 存储帐户 KeyVault SQL Server 和 SignalR 我想
  • 如何通过运行构建队列重新启动 Jenkins?

    我们的 Jenkins 执行大量集成测试 詹金斯运行的时间越长 测试所需的时间就越长 因此 我们每天晚上通过 cronjob 重新启动 Jenkins 服务器 同时 构建队列太长而无法完成 当前正在运行的作业被取消并失败 那太丑了 我找到了
  • TFS 门禁办理登机手续的缺点

    我一直使用 TFS 中的持续集成 CI 构建 然而 在我的上一个项目中 我们开始使用门控签入触发器 使用门禁办理登机手续有什么缺点吗 因为如果它阻止团队检查损坏的代码 那么 CI 触发器的目的是什么 门控签入是持续集成构建的一种形式 在TF
  • 如何使用 TFS build 2015 运行自动硒测试?

    我有 NUnit 硒测试 已嵌入到单元测试中 并且我正在尝试使用 TFS Build 2015 运行它 所有测试在本地运行得很好 但不是从 TFS 服务器运行 我启用了代码覆盖率 发现 Module unittests dll 工作正常 大
  • 已安装 cypress npm 软件包,但缺少 Cypress 二进制文件

    大家好 我是 azure devops CI 的新手 我正在尝试通过在作业之间缓存 node modules 来减少管道构建时间 但我遇到了无法解决的错误 我正在使用 cypress 进行测试 这是我的天蓝色管道 Node js Build
  • 如何获取 PR 标题并将其存储在变量中

    我希望能够获取 PR 消息并将其存储为 Azure Devops 中的变量 以便我可以将标题更改为 SKIP TEST 并在管道中扫描它 而不是手动浏览变量 UI 我想我只需要执行某种 REST API 调用 因为我已经有了 PR ID 和
  • 在 Databricks 集群上 pip-install 来自 Azure Artefact 的 Python 包

    我有一个小型演示包 已将其发布到 Azure Devops 我可以通过启动虚拟环境并将特定的全局设置添加到我的本地环境中来进行 pip 安装 pip conf file 现在 我想将其安装到我的 databricks 集群中 我无法找到任何
  • SonarScanner 给出的“MsBuild.exe”在 TFS 2018 上未被识别为内部或外部命令

    我将 SonarQube 添加到现有的 TFS 2018 版本中 我按照此处下载 Community Edition 7 4 的说明进行操作https docs sonarqube org display SCAN Install the
  • Bitbucket Pipeline - 如何排除文件或文件夹?

    如何排除文件夹或文件上传到服务器 我想忽略 src 文件夹和package json image node 10 15 3 pipelines branches develop step caches node name Deploy to
  • TFS 和引用的 DLL

    我们使用的是 TFS 和 VS 2010 我一直在从事一个使用 TFS 作为源代码控制的项目 我已经下载了相当多的 dll 例如 log4net 并在我的项目中引用 当一个新程序员连接到 TFS 并使我的项目脱离源代码控制时 它无法构建 因
  • 使用 TFS 的每个分支的 Nuget 存储库

    我有一个具有以下分支设置的 TFS 环境 Dev 开发人员的主要工作分支 Main 稳定 可发布的分支 修补程序 用于修复不属于正常发布周期的生产代码 我们正在设置自己使用 Nuget 我想配置一些东西 以便 Dev 分支中的代码从 Dev
  • 如何获取Azure DevOps Pipelines中变量的单元测试结果?

    我在 Azure DevOps 中有一个构建管道 并且正在使用 NET Core 任务来应用单元测试 我需要获取变量中单元测试的结果 例如 如果有 10 个测试用例 其中两个失败 我需要得到如下信息 failedTestCases 2 su
  • Github Action 触发另一个存储库更新(push、pull_request)

    我在为我和一些朋友设置适当的构建链时遇到一些麻烦 因此 我分叉了两个存储库 官方 ghidra 和 ghidra ci ghidra ci 是一个构建您的 ghidra 分支的存储库 当您挑选一些 pr 时 您可以添加一些尚未添加到官方 g
  • TFS 在线构建在具有 TF270016 / TF270002 的本地构建服务器上失败

    我们使用 Visual Studio Online 但我们有本地构建控制器和构建代理 在过去 6 个月左右的时间里 它一直运行良好 但就在本周 构建一直失败 软件本身似乎构建成功 测试似乎也通过了 但由于发布日志文件期间出现错误而失败 请参
  • 筛选 NUnit MSBuild 任务的类别?

    我正在设置一个 MSBuild 项目来运行一些 NUnit 测试 使用MSBuild 社区任务项目 http msbuildtasks tigris org 通过这些设置 我将能够运行 NUnit 测试
  • 将 Azure Pipelines 与多目标项目一起使用时出现错误 NETSDK1061

    完整的错误在这里 Error NETSDK1061 The project was restored using Microsoft NETCore App version 1 0 0 but with current settings v
  • 为什么安装了 TFS Power Tools 后却缺少 tfpt.exe?

    我在 Windows 10 上使用 Visual Studio Community 2017 我安装了 TFS power tools 2011 2013 2015 我读到以前的 Power Tools 已集成到 TFS 2017 中 但任
  • TFS 2010 跨团队项目分支 - 最佳实践

    我在了解如何根据 TFS Ranger 团队提供的最佳实践配置 TFS 时遇到问题 问题是这样的 我的公司有多种产品使用共享的通用代码库 gt Core gt gt Main Source Parent Branch gt gt Produ
  • 文件提取失败:在 ExtractFiles@1 中

    我有一个 React js 应用程序 当前为 Azure CI CD 管道设置 突然它在发布阶段开始失败 它正在成功构建 我可以看到在工件中创建的 zip 文件 提取文件任务集在遵循方式 https learn microsoft com
  • 我可以查看带有标签的 TFS 文件历史记录吗?

    目前 我们在工作中同时使用 Visual Source Safe 和 Team Foundation Server 对于旧项目使用 VSS 对于当前或新项目使用 TFS 我们始终在每个构建的源代码管理中使用标签 在 VSS 中 如果您选择查

随机推荐