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

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 回答
186 浏览

tfs - 如何从远程 powershell 脚本设置任务变量?

从发布定义来看,

当我使用 powershell 任务执行以下 powershell 脚本时,它可以成功运行,并且我可以从发布定义中的以下任务中检索值:

由于“Powershell on target machine task”,当我执行完全相同的脚本时,我没有得到任何价值。

如何从不在代理机器上执行的 powershell 脚本设置变量?

问候,

0 投票
1 回答
408 浏览

azure-devops - 发布后将文件从 azure 文件存储复制到 azure 网站

部署完成后,我有需要复制到我的网站(天蓝色网站)的文件。通常这些文件是特定于服务器的(我有多个不同的服务器用于不同的版本),通常在过去,在我使用 azure 之前,我只有一个包含这些文件的备份文件夹和一个我在部署后运行的 powershell 脚本,它只是复制了那些文件就过去了。

现在我正在转向天蓝色,我想保留这个功能。我有兴趣将这些文件复制到 azure 文件存储中,然后在 azure 网站部署后的发布任务中,只需从该文件存储复制到 site\wwwroot 文件夹。我真的没有看到一个简单的方法来做到这一点。考虑到这一点,我可以使用发布任务吗?

0 投票
1 回答
1980 浏览

azure-devops - Azure DevOps 发布管道中的计数器

我需要一个计数器,每次发布时,每个阶段都会增加。构建管道中有计数器支持(https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=vsts&tabs=yaml%2Cbatch#counters)但我一无所知用于发布管道。

某种解决方法是从版本名称中解析出版本号,并将其用作计数器。但是解析字符串很难看,它只在每个新版本而不是每个特定阶段递增(例如,我希望“dev”和“prod”有单独的计数器,如果在同一个版本中,你再次部署它,我希望计数器上升)。

有什么我想念的吗?我正在考虑创建自己的管道任务来完成它,但我不确定在发布之间保持状态的最佳方式。这里有某种模式吗?目前我正在考虑的任务只是在指定的存储帐户中创建一个配置文件来存储状态并在版本之间增加它。

0 投票
1 回答
536 浏览

azure-devops - Azure Pipelines 中文件中的变量和变量组

是否可以根据存储库中的文件创建发布管道变量或变量组。

我的用例是我们使用 liquibase 在 azure 中更新 SQL 服务器上的数据库。为了并行化,我们使用一个包含每个数据库名称的变量组(例如 db1、db2、db3),这样当我们执行管道时,它将为每个数据库启动一个代理并并行运行。这很好用,但这意味着每次 Dev/Ops 添加新数据库时,他们必须记住进入管道并将新数据库添加到相关变量组。

我想在我们的 git 存储库中有一个文件,我们可以从中填充变量/变量组,因此工程师只需要修改一个文本文件并将其提交到存储库,而无需导航管道 UI。

0 投票
1 回答
640 浏览

azure-devops - 如何停止先前排队的发布而不必一次取消它们?

我们有一个发布管道,每次构建完成时都会自动创建一个新版本。

那时,我们有一个候选版本,所以这是有道理的。每个构建都可能是可发布的。

在管道中,Release 自动转到 dev。所以我们得到一个签入和构建,然后它进入开发服务器。

发布到 Stage 时有一个批准门。批准通常需要一段时间,在等待批准的同时开发将继续。

现在,我们有 10 - 15 个构建被列为排队。

所以,我需要自动取消每一个,以便开始发布最新版本的阶段。

有没有办法在更新版本进入队列时自动取消发布,或者我应该在开发阶段创建一个 POST-approval 让它保持在阶段之外,直到有人在该发布版本上点击“开始”?

我用对了吗?

0 投票
1 回答
143 浏览

terraform-provider-azure - Azure 发布管道报告所需的变量未设置也称为卸载以定位/加载“秘密”变量组变量

我在main.tf文件中声明了以下变量:

我在 Azure Release Pipelines 中创建了这些变量,并将其定义为可供所有管道访问,如下所示:

在此处输入图像描述

我无法理解为什么 Release Job 会报告未设置这些变量的原因:

我试图在 terraform 计划之前添加一个命令行,如下所示,

不幸的是,我没有看到执行中的值,

我尝试了两种方法,首先将其设为机密,然后定义值,还首先定义值,然后将其设为机密,但错误仍然存​​在。

知道可能是什么问题吗?

0 投票
1 回答
735 浏览

terraform - 将变量组中的变量标记为机密会使它们不可见

我有一个案例,将变量标记为机密在发布任务中失去了价值,请允许我进一步详细说明。

请在下面找到 Terraform 服务主体的屏幕截图

在此处输入图像描述

上述一个作为变量在管道中可用。

以他们是秘密和锁定的场景为例。

在此处输入图像描述

现在,运行管道,它报告未设置所需的变量。

在此处输入图像描述

我添加了一个步骤来回显这些变量,只是为了看看我是否能看到它们,这里是 Release 任务: 在此处输入图像描述

我“假设” *** 表示实际的回声,所以他们在回声语句中用词。

无法理解为什么行为不同:

  1. 在纯文本中,它们在管道中可用
  2. 当标记为机密时,它们不可用。

如何使它们在管道中可用?

更新

做这样的事情:

得到错误

0 投票
1 回答
1153 浏览

terraform-provider-azure - Azure 发布管道,terraform 任务 - 无法通过 Azure 进行身份验证,报告错误 700016

在我从 UI 中删除应用注册/服务主体并使用以下命令创建新的之前,我的发布管道运行良好。

我在下面的“变量组”中更新了从上面获得的值,该值与发布管道相关联

在此处输入图像描述

但是,当我得到定义如下的 terrafor 计划任务时:

我收到以下错误消息:

就在此任务之前,即使用服务主体执行 az account login 的 cmd 任务。在日志输出中,我可以清楚地看到 az account show 的输出,为什么这个任务不起作用?

CMD任务的输出,

它的定义如下:

在我能够毫无问题地提供资源之前。

0 投票
0 回答
2550 浏览

azure-devops - 构建 AzureRM 客户端时出错:从 Azure CLI 填充客户端 ID 时出错:未找到授权令牌

您之前是否遇到过主题行中提到的错误?我对此很感兴趣并且无法解决。以下是我为创建服务主体而执行的步骤

运行 terraform 计划,如下所示:

现在,我再次运行 terraform 并收到未找到授权令牌的错误消息!

请注意,我在 1. CentOS 7.6 2. Ubuntu 16.04 3. Azure Pipelines Release Pipeline(使用 Ubuntu 16.04 代理)上进行了测试并且表现出相同的行为

更新:当我尝试创建 SP 时遇到一个奇怪的错误。我已经有了默认订阅,但仍然运行以下命令并收到错误:

错误信息:

我进一步深入了解这与 azure 令牌有关,因为我可以使用 Azure CLI 本身创建 VM 实例,请参阅以下证据:

它没有启动虚拟机,但至少它很清楚,如果大小合适,它能够继续进行。

0 投票
3 回答
4242 浏览

azure - 在 Azure DevOps 发布管道中控制作业顺序

我有一个跨越多个部署组的复杂版本,我计划使用第 3 方vsts-git-release-tag扩展来标记该版本。理想情况下,整个发布(所有作业)在标记存储库之前首先会成功。

因此,我正在尝试找出实现这一目标的最佳方法。如果这是一个构建管道而不是部署管道,很明显我可以使用 来dependsOn安排它们,如下所示。

但是,在本文档中指定的发布管道中似乎没有等效的功能(至少目前是这样)。

笔记

目前仅在构建管道中支持并行运行多个作业。发布管道尚不支持它。

虽然它没有特别提到该dependsOn功能,但似乎没有办法在发布管道中使用它(如果我错了,请纠正我)。

我意识到我可能可以创建一个单独的阶段,其中包含一个作业和任务来创建 Git 标签,但这感觉就像一个 hack。在所有其他发布作业完成后,是否有更好的方法来运行特定发布作业?