问题标签 [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.
azure - 如何在内联数据源绑定中使用 endpointUrl?
我正在编写一个自定义任务来将文档发布到 Azure API 门户。我希望任务的 UI 列出所选订阅和资源组的可用 API 管理服务。根据这个问题,这在技术上应该可以通过在我的数据源绑定中指定 endpointUrl 来实现。我试图在 Azure RM Web 部署任务中的数据源之后为端点建模,但我似乎无法让它工作。在我的任务中,我可以选择我的订阅,选择我的资源组,但我的自定义数据源的 pickList 始终为空。我没有在我的任务定义中进行任何明确的身份验证,所以我不确定这是否有某种相关性。以下是我的任务的inputs
和:dataSourceBindings
更新
在 Chrome 中检查控制台后,我收到一条错误消息,指出我无法调用不以{{endpoint.url}}
. 我在根目录更新了我的任务,{{endpoint.url}}
我确实看到它试图进行我期望的 API 调用:
现在的问题是,由于某种原因,Azure RM 终结点类型已endpoint.url
解决https://management.core.windows.net
。Azure RM API 托管在https://management.azure.com
. 结果,我收到了 403,因为我的端点凭据适用于 Azure RM 服务主体,而不是 Azure 经典管理 API。
我也用这些信息更新了我的Github 问题。我相信这是一个错误,endpoint.url
Azure RM 服务端点应该解析为https://management.azure.com
. 如果查看 Azure RM 服务终结点中定义的数据源,它们都引用托管在https://managemnet.azure.com
not的 API https://management.core.windows.net
。
azure-devops - VSTS 发布 - 从子文件夹复制文件
我有一个“发布”,打算用来发布到远程共享。
我创建了一个Copy Files
有效的任务。但是,我的构建工件都在两个子文件夹之下[UI] Build/drop
。我想复制放置文件夹的内容而不是整个内容。不幸的是,我似乎只能复制整个东西!
任务(复制所有文件和文件夹):
- 源文件夹:
$(System.DefaultWorkingDirectory)/
- 内容:
**
- 目标文件夹:
\\myshare\test
因此,我尝试仅复制以下内容(在本文的支持下),UIBuild/drop
但在以下任何一种情况下都不会复制任何内容:
- 更改
Source Folder
为$(System.DefaultWorkingDirectory)/[UI] Build/Drop
. - 保持
Source Folder
原样,但改变Contents
为[UI] Build/drop/**
- 保持
Source Folder
原样,但改变Contents
为**/[UI] Build/drop/**
- 保持
Source Folder
原样,但改变Contents
为**/drop/**
我究竟做错了什么?
azure-devops - 在 VSTS 版本中安装 MSI
我们将软件打包成MSI文件(使用 Wix)。我们使用VSTS进行构建和发布。
是否有标准方法将 MSI 文件部署为 Release 的一部分?
是的,我可以msiexec /i ...
作为 PowerShell 或批处理脚本运行。但是我们还需要一些其他的东西,例如检查退出代码、将安装日志文件上传回 VSTS Release 或分析错误消息等。
这听起来像是人们想做的很常见的事情,但是没有这样的标准 VSTS 步骤 \ 扩展名。
visual-studio - 使用 VSTS Release 发布 Azure 数据工厂项目
我想在 Visual Studio 中创建 Azure 数据工厂项目,而不是直接在 Azure 门户中创建 Azure 数据工厂。原因是我希望将项目置于源代码控制中,因为它是一个团队项目并且为了备份它。
我想使用 Visual Studio Team Services 自动执行上述 Azure 数据工厂项目的构建和发布过程。构建过程很简单;它将是在解决方案上运行的 MSBuild。但是,我不确定如何进行发布定义。是否有允许我将 Azure 数据工厂项目部署到 Azure 的任务/任务集或不同的方法?
nuget - 为 VSTS 上的预发布配置 Nuget 包
注意 如果有更简单的方法来创建预发布包,请告诉我!
我正在使用 Visual Studio Team Services 并设置了一个 nuget 包和发布步骤。
我有一个名为的构建变量$(BuildSuffix)
,它允许我将特定于构建的变量标记到构建编号格式的末尾,如下所示
$(Build.DefinitionName)_1.0.$(date:yyyy)$(date:MM)$(date:dd)$(rev:.r)$(BuildSuffix)
然后的想法是我可以设置$(BuildSuffix)
为,-beta
以便我的最终构建版本可能是Build_1.0.20170119.2-beta
.
根据此处的 nuget 文档,附加-beta
到内部版本号将创建一个预发布包。VSTS 中的构建附带了 -beta,但 nuget pack 阶段似乎从未包含它。它总是以确切的版本号出现,但没有-beta
标签。
我的 nuspec 文件如下所示:
我的 NuGet 包步骤如下所示:
azure-pipelines - VSTS 发布管理;许多发布目标
我有一个包含 8 个 Web 项目和 12 个可执行文件的解决方案它们都非常紧密耦合,因为它们之间共享了很多业务库;我们在 VSTS 中对整个解决方案有一个构建定义,但有 20 个不同的发布定义。
我们有用于 Dev/QA/Pre-Prod/Production 的单一环境、足够多的并发活动开发和管理限制,因此在所有环境模型中进行单一更改对我们来说并不适用;开发和 QA 测试,稍后将转移到针对发布候选者的夜间复合构建。
在我看来,我们希望有两组发布定义(一个开发和一个 QA 集,以及一个通过生产集的用户接受),但如果遵循该模型,我们最终会有 40 个发布定义。我错过了什么吗?我们对 EXE 有单独的定义,因为我们不希望一个发布失败影响另一个发布,并且由于它们都是单独目录的单独有效负载,因此它们似乎都应该是不同的。
每个可部署项目 1 个发布定义的模式是否正确,并且在夜间构建的情况下,两组所有可部署发布定义是否正确?
azure-devops - 多个工件源上的 VSTS 发布触发器不关心分支规范
Microsoft 增加了仅为特定分支定义 VSTS 发布触发器的功能。它在功能时间轴上列为“发布管理编排改进 - 分支条件、多个工件触发器” 。
我们也使用分支和 PR 构建,但我们只从 Git主分支发布代码。在过去,我们甚至不得不为此创建一个自定义扩展。
但是,如果将多个构建带到一个版本中,它仍然无法按预期工作。考虑这种情况:
- 我们有组件 A 和组件 B,它们都为 master 分支以及其他分支和 PR 生成构建。
- 我们有一个 Release 定义,其中两个触发器仅针对 master 分支定义。
- 在 Artifacts 选项卡上,我们添加了带有“最新”选项的两个构建,因为其他两个选项是手动的,因此不符合持续部署原则。
- 当组件 A 为 master 构建时,它会触发一个 Release,该 Release 会从组件 A 的最新 master build 中获取工件。
- 但是组件 B 的构建可以用于任何分支\PR,无论是最新的。
有什么方法可以确保只有特定的分支构建被纳入发布(在我的情况下是主构建)?
请参阅下面的屏幕截图。
1) 为 2 个构建配置触发器。
2) 采用的工件来源是最新版本
3)其他分支(在这种情况下不是master)仍然会触发一些发布:
azure-pipelines-build-task - 自定义 VSTS 发布任务:打包以及我的图标在哪里
我正在尝试发布 VSTS 的扩展;一个小的发布任务。我不打算公开发布此内容,仅供内部使用。我发现了很多“如何做”的帖子,但它们在某些主题上往往含糊不清,甚至包含过时的信息。我确实完成了我的任务并且它有效,但我仍然有一些问题。
1)打包你的扩展:
根据visualstudio.com,我需要将我的扩展打包成一个.vsix 文件。有人可以向我解释这是做什么的吗?我没有做这一步,因为它不是我找到的第一个教程的一部分。我的任务仍然在那里并且功能正常,所以我不确定包装的目的是什么。
2) 图标问题
我知道微不足道,但我似乎无法显示我的任务图标!我有一个图标存储在我上传的文件夹的根目录中,我在我的扩展清单中引用了它,但它似乎不会出现。
“图标”:{
“默认”:“icon.png”
},
“文件”:[
{
“路径”:“icon.png”,“可寻址”:假
}
]
我是否需要以某种方式引用我的任务清单中的图标?我没有在 task.json 中看到任何对图标属性的引用。此外,我看到一些网站说图标需要是 32x32 png,但扩展清单参考说它应该是 128x128。
powershell - Powershell:无法更新注册表路径,因为它不存在(但它确实存在)
我们正在 Windows 8.1 的 IE 上运行 Coded UI 测试,并且我们通过 Visual Studio Team Services 进行测试。作为我们构建的一部分,我们运行一个禁用弹出管理器的 Powershell 脚本。我们用来禁用它的代码是这样的:
当我在 Release Manager 中创建和部署构建时,运行它会生成以下错误:
运行命令停止,因为首选项变量“ErrorActionPreference”或通用参数设置为停止:找不到路径“HKCU:\Software\Microsoft\Internet Explorer\New Windows”,因为它不存在。
(强调我的)
我已经登录到虚拟机并查看了注册表,并且HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows
绝对存在。我唯一能想到的是它的值不是 DWORD 而是一个字符串——PopupMgr
键的数据值为“yes”而不是 1 或 0。但这与错误消息不匹配——错误说它甚至找不到键的路径,而不是值类型不匹配。另外,代码在插入新密钥之前删除了现有密钥,所以我什至不知道它会如何注意到不匹配。
更奇怪的是,如果我在 VM 中打开 Powershell 并运行这两行(我复制并粘贴以避免拼写错误),它们运行得很好。
该脚本在 Windows 10 上完美运行并且已经有一段时间了,所以我不确定这里发生了什么。该用户是管理员组的成员,所以我认为这不是权限问题。
任何人都可以对此有所了解吗?