问题标签 [azure-pipelines-release-pipeline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
999 浏览

azure-pipelines - 访问 VSTS 中的变量以获取版本名称格式

我在 VSTS 项目中全局定义了一个组变量,我可以从 powershell 脚本作为发布任务中的任务访问它的值,但是如果我尝试将它用作发布名称格式的变量(在一般选项卡中)它将变量作为字符串威胁,因此它不会显示其值,而是将其名称显示为版本名称的一部分。

$(gReleaseName)_$(rev:_r)

关于如何访问变量值的任何线索?

0 投票
1 回答
5598 浏览

tfs - 在构建过程中修改 TFS 2015 BuildNumber

我有一些存储在 TFS 下的嵌入式 C 软件,并且还有一个相应的 TFS 构建定义,可以成功检查代码并使用相关编译器构建它。所以要明确一点,虽然这是 TFS,但我不是在构建 .NET 应用程序。

现在我已经构建工作,我正在尝试提供应该链接到构建过程的整体软件版本控制支持。我目前的目标如下:

正在构建的源代码有一个头文件,其中包含三个变量的#defines,主要版本、次要版本和内部版本号。然后,此头文件用于在编译时将版本号烘焙到软件中。这个概念是作为开发的一部分,开发人员只负责更新主要和次要版本号。内部版本号在源代码中始终保持为 0,并且不应由开发人员修改。

在开发人员在他们自己的机器上本地生成构建的情况下,主要和次要版本将按照代码中的定义进行设置,但构建号将保持为 0,这表明构建不受控制。但是,对于服务器上的正式版本,我希望 TFS 自动增加版本号,以便指定相同主要和次要版本的后续版本导致版本号增加,以提供整体唯一的版本描述符。

在做了一些阅读之后,我具体看到这项工作的方式是将 TFS 内部版本号格式定义为如下所示: $MajorVersion.$MinorVersion.$(Rev:.rr) 其中 MajorVersion 和 MinorVersion 是我定义为的变量构建过程的一部分。

我意识到修订版根据整个内部版本号格式保持唯一性。因此,我认为在尝试评估修订版和更广泛的内部版本号之前,从源代码中提取主要版本和次要版本并填充两个构建变量是至关重要的。我创建了一个 Powershell 脚本,使用正则表达式从头文件中提取主要和次要版本,然后在脚本中设置变量。

现在终于解决问题了。看来我的方法有缺陷。一旦我将构建排队,就会立即评估 TFS 构建号,似乎是为排队的构建命名。在这个阶段,我无法运行我的脚本来提取主要和次要版本,因此也得到了错误的修订号。因此,根据我之前提到的内部版本号格式,我最终会得到一个内部版本号和结果名称,例如“..01”或“0.0.01”,具体取决于我是否在构建定义中初始化了主要变量和次要变量。

那么,任何人都可以看到一种方法,我可以将 TFS 内部版本号的评估推迟到我有机会通过 Powershell 构建步骤从源代码读取我的主要和次要版本之后?如果我能做到这一点,应该根据真正的主要和次要版本正确计算修订。然后,我将使用另一个脚本在我的头文件中仅设置内部版本号#define 以匹配 TFS 内部版本号中的修订。此外,由于 TFS 似乎使用内部版本号作为排队构建的名称,我不确定如何处理这个问题,因为我不知道构建排队时的最终 TFS 内部版本号。在构建过程中可以修改名称吗?

请帮忙。我认为我的想法相当简单,但我正在努力使用其他非常好的 TFS 2015 构建系统来实现它。

0 投票
1 回答
171 浏览

xamarin - Xamarin:VSTS 生成 ipa 和 apk 文件

是否可以使用 VSTS 版本生成 ipa 和 apk 文件并发布到商店?

0 投票
1 回答
1563 浏览

azure - 使用构建工件以编程方式部署 Web 应用 zip 包的 Azure Arm 模板

简短的问题:

我想知道下面的 MSDeploy 资源(部署 azure 应用服务)中的 packageUri 参数是否可以指向发布管道使用的 VSTS 构建服务器放置位置的位置。

如何以编程方式获得建立放置位置的权限? 使用 vsts api?哪个?也许这个链接可以阐明一些观点:

了解工件

从在线视觉工作室获取您的构建工件

REST API 的基本身份验证

更长的问题和解释: 我在开发过程中使用 VSTS 发布定义来部署我的 Web 应用程序基础架构。Web 应用程序将由我的 VSTS 构建构建和打包并上传到服务器放置位置。我正在为我的构建和发布管道使用本地(我的 PC)代理。

虽然我可以使用 vsts Deploy Azure App Service 发布任务(知道如何查找构建工件)进行 Web 应用程序部署,但我想从我打算构建的 Web 应用程序中以编程方式自动部署多个 Web 应用程序。

我想知道这个 .zip Web 应用程序包是否可以以某种方式提供给我的 ARM 部署模板。每个人都建议将 .zip 包复制到带有 SAS 令牌的存储 blob 中,这样 Release “Deploy azure app service” 就可以找到它。我想避免这种复制。实际上,如果我无法按要求执行此操作,我至少希望以编程方式下载此软件包并最终将其复制到存储 blob 容器中。

这是我做的小研究:

我为构建和发布打开了代理日志记录

RELEASE_RELEASEWEBURL 是一个有趣的页面,我可以在其中按显示所有链接源的工件(在我的情况下,我有一个来自我的 CI 构建的主要源。)。然后我可以点击链接并到达特定的构建 EcommerceSiteCI / Build 20161230.12,然后我可以按下载按钮(从下面的链接)下载我想要的 .zip 包。我想从我的 Arm 模板中以编程方式了解它。我想创建一个 Web 应用程序或 Api 应用程序,它可以以编程方式发现这个 .zip 包并使用它来使用“Web 应用程序的 Web 部署”资源部署应用程序。

https://vstsaccount.visualstudio.com/vstsproject/_build/index?buildId=85&_a=summary&tab=artifacts

看着提琴手,我设法看到资产下载的网址是什么:

获取https://vstsaccount.visualstudio.com/7ab6c2a4-208d-411d-81e5-5e88b26f2252/_apis/build/builds/85/artifacts?artifactName=drop&%24format=zip

所以我可以看到基于 [BUILD_BUILDID] --> [85] 和 [SYSTEM_TEAMPROJECTID] --> [7ab6c2a4-208d-411d-81e5-5e88b26f2252] 我可以组装这个 URL。唯一的事情是如何验证这个请求。当我输入上面的地址时,系统提示我使用 Microsoft 帐户登录,我看到它是 oauth 2.0 身份验证。网址是这样的: https://login.live.com/oauth20_authorize.srf?response_type=code&client_id=51483342-012c-4d86-bf138-cf50c7252078&scope=openid+profile+email+offline_access&response_mode=form_pos 等...(一些加密字符串 - 可能表示 .zip 包位置被省略)。

即使我无法将此下载 url 提供给 MSDeploy 臂资源,如果我可以以编程方式下载它并上传到存储 blob 容器并为 MSDeploy 生成 SAS 令牌以找到它,那将是很棒的。

那么如何以编程方式获得建立放置位置的权限呢?谢谢拉德

0 投票
1 回答
256 浏览

biztalk - “运行功能测试”任务和 Specflow - App.config 被忽略?

我在 TFS 2015 更新 2 中创建了一个发布定义,如下所示:

运行函数

我想将其用作我的 CI 流程的一部分。每次签入的构建和单元测试都在专用的 BizTalk 构建服务器上执行。每晚执行,此(当前有问题的)版本应部署到“DevTest”BizTalk 服务器并执行集成测试。

一切都很好,直到最后一个“运行功能测试”任务。因此,BizTalk 应用程序被删除,然后以正确的顺序部署到目标服务器。“IntegrationTests”程序集包含一些使用 Transmock 框架 ( http://transmock.codeplex.com/ ) 的 Specflow 测试。这些测试的步骤包含在一个名为“Common.Components”的程序集中。这是从名为“Finance.IntegrationTests.dll”的测试程序集引用的。在我的 Dev VM 上运行时测试通过。但是,当由“运行功能测试”任务执行时,我收到以下错误:

测试方法 Finance.IntegrationTests.ASC_BacsFeature.BacsFileMoved 抛出异常:NUnit.Framework.InconclusiveException:没有为一个或多个步骤找到匹配的步骤定义。使用系统;使用 TechTalk.SpecFlow;命名空间 MyNamespace{ [Binding] public class StepDefinitions { [Given( @"由 sso app '(. )' 和设置 '(. )'指定的输出路径")]public void GivenAnOutputPathSpecifiedBySsoAppAndSetting(string p0, string p1){ ScenarioContext.Current.Pending();} [Given(@"the输入

我已将我的测试项目的 App.config 设置为使用 MsTest,如下所示:

似乎在远程执行测试时,使用的是 NUnit 而不是 MSTest。

“Common.Components.dll”通过 GacUtil /I 在早期版本中成功部署到 GAC,所以我不确定为什么找不到它?

我试过直接在远程服务器上运行测试。我打开 RDP,然后打开一个命令窗口并运行“vstest.console Finance.IntegrationTests.dll”。然后我收到无法找到测试输入文件的警告,随后出现错误,因为“无法加载文件或程序集'nunit.framework'”。

我认为问题是,远程执行测试时没有使用集成测试程序集的 App.config。这解释了为什么它尝试使用 NUnit 而不是 MSTest,以及为什么它无法绑定到常用步骤 - 因为它们的位置在节点中给出。

有谁知道我如何在远程测试时使用 App.config?

0 投票
3 回答
1422 浏览

amazon-web-services - VSTS任务:窗口机器文件拷贝:系统错误53

我正在尝试从 VSTS 发布到运行 IIS 的 VM(在 AWS 上运行)。为此,我使用了三个任务。

  1. Windows 机器文件复制
  2. 管理 IIS 应用程序
  3. 部署 IIS 应用程序

在发布之前,我正在运行一个构建管道,它为我提供了一个包含 Web 应用程序 (webapp.zip) 的工件。当我手动将它放在服务器上时,我可以运行我发布的第 2 步和第 3 步,并且应用程序可以正常工作。我遇到的问题是我没有让 Windows 机器文件复制工作。它总是抛出一个异常,给出“系统错误 53:找不到网络路径”。当然这些机器没有加入域,因为我在 VSTS 上运行我的版本并且需要 AWS VM 上的文件。我尝试打开端口 445(用于文件共享)并确保用户对目标机器上的目标路径具有权限。所以我的问题是:如果两台机器没有连接,我如何才能将文件从 VSTS 移动到 AWS VM。

0 投票
1 回答
665 浏览

azure-devops - 如何在我的 VSTS 帐户中恢复损坏的构建任务?

我试图从官方存储库向现有的 VSTS 构建/发布任务添加额外的配置选项。

为了测试它,我使用tfs-cli将任务上传到我的 VSTS 帐户。但是,由于代码基于尚未发布到我的 VSTS 帐户的一些较新的 Vsts Task SDK 版本,因此它似乎已损坏。

由于我使用了与官方任务相同的任务指南,因此我有效地更新了官方并使其损坏。

如何恢复这些更改并返回到最新的官方发布版本的 VSTS 构建任务?

0 投票
2 回答
85 浏览

remote-debugging - 软件自动发布后如何远程调试软件

我目前正在使用 vsts 发布计划发布我的 asp.net 网页。

  • 使用本地构建控制器执行构建。
  • 在构建定义中添加了一个用于发布符号的步骤(使用默认设置)

我需要做什么才能远程调试这个应用程序?我可以附加我的调试器,但我收到一条消息,因为没有加载任何符号,所以断点不会命中。

我该怎么做才能加载我的符号?(我的符号保存在哪里,如何公开它们以及如何通知 Visual Studio 从该特定位置获取它们,我可以为调试版本和发布版本执行此操作)。

指向某种参考/文档的链接也很好。我找不到使用符号发布的适当文档。

0 投票
1 回答
385 浏览

azure - Azure 应用程序部署中的许多参数之一参数化 Web.config 失败

我搞不清楚了。我有一个带有配置文件和几个参数的 Web 项目,这些参数需要根据目标环境进行不同的设置。我有一个应用程序设置和一个连接字符串。这些DEFINE值需要被替换。

网络配置:

我有一个 Azure App Service Deploy 任务稍后在部署期间使用的参数规范。在这里,我指定了要替换的两个值。

参数.xml:

HostUri正确替换应用程序设置后,连接字符串DbConn保持不变。我什至没有设置默认值。它保持DEFINE原来在 Web.config 中设置的值。

我的直觉告诉我我的 XPath/configuration/connectionStrings/add[@name='DbConn']/@connectionString不正确,但我觉得它看起来不错,并且遵循其他帖子所做的事情,例如Cobus Bernard

任何帮助是极大的赞赏。

0 投票
1 回答
349 浏览

selenium - Visual Studio Team Services 测试运行

抱歉,如果以前有人问过类似的问题,我似乎找不到任何东西,如果是的话,只需将我链接到正确的方向。

我是测试自动化的新手,我将针对托管在内部网络上的第三方网站编写 selenium 测试。我们的源代码控制由 Visual Studio Team Services 提供,尽管我可以在本地安装 TFS。

最终我需要安排测试运行,我相信这一切都可以通过团队服务完成,看过一些演示,一切都很好。

我将使用 URL 访问我们内部网络上的被测系统,如果团队服务尝试运行 selenium 测试并连接到 URL,我想它会失败,因为它是从 Microsoft 持有代码和构建的任何地方运行的.

如果可能的话,我认为我们不会允许团队服务访问我们的内部网络。

所以问题是,我有什么选择?可以将构建从 VS Team Services 移动到本地计算机上以使用内部 URL 运行测试吗?如果可以的话,这是个好主意吗?我是否过于依赖互联网来测试我们的内部网络,这是一种风险吗?

我在“谷歌”上花了一些时间,但努力寻找大量信息,我可能问错了问题。

非常感谢任何帮助,文章链接很好,不介意做腿部工作,只需要一些指示。

非常感谢您的帮助,如果其中任何一个没有意义,我们深表歉意。