问题标签 [azure-yaml-pipelines]

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 投票
2 回答
2093 浏览

azure-devops - 如何使用 Azure DevOps 管道表达式检查数组是否包含字符串

我有以下管道模板,我想使用它根据输入参数有条件地执行阶段stages

在示例中,您可以看到我尝试过的两种方法(我尝试了很多......)。最后一个 ( in('prod', '${{ join(', ', parameters.stages) }}')) 实际上可以编译,但是当数组转换为单个字符串时,检查仅部分起作用:'test,prod'这将使in('test', 'test,prod')检查失败。

第一个示例 ( in('test', ${{ parameters.stages }})) 是我认为应该使用逻辑思维的示例,但是在编译模板时出现以下错误:/terraform-deployment.yml (Line: 19, Col: 16): Unable to convert from Array to String. Value: Array.

所以现在的问题是:

如何检查字符串是否是定义为参数的数组的一部分?

0 投票
1 回答
312 浏览

azure-devops - 基于 Yaml 的管道 - 在运行时从下拉菜单中设置池名称

我有这个 yaml,如何将池设置为下拉列表中选择的值?显然我现在所拥有的不起作用。它抱怨在这种情况下不允许使用模板表达式。

0 投票
2 回答
268 浏览

azure-devops - Azure DevOps YAML how to being notified about new task version

In the graphical build editor there was a hint if there is a new version of a build task:

GraphicalEditor

Is there any equivalent in the YAML editor?

enter image description here

Or is there any other option to find out, if there is a new task version available (besides searching the documentation)?

0 投票
1 回答
2219 浏览

azure-devops - Azure 构建管道路径筛选器以仅包含特定文件扩展名

我正在努力在 Azure DevOps 中创建构建管道。我想针对 master 分支触发它,但仅当提交在src/Project/tds/Serialization.Master/ Project 下发生更改时 - 此项目仅包含 .item 文件如果提交包含任何其他文件以及 .item 那么此管道应该t 触发,尝试路径排除

BDD

方案 1

给定 | 我有改变src/Project/tds/Serialization.Master/*

那么 | 构建管道应该触发

方案 2

给定 | 我有改变src/Project/tds/Serialization.Master/*

和 | 我有改变src/Foundation/*

那么 | 构建管道不应触发

方案 3

给定 | 我有改变src/Foundation/*

那么 | 构建管道不应触发

0 投票
1 回答
332 浏览

azure-devops - git标签的构建时间表

是否可以使用标签安排 yaml 管道。我想要实现的是一种简单的方法来指定要构建的提交。对于这个系统,它需要在每次部署时重建。我不想为此使用分支,因为我想在需要部署新版本时避免合并。

最终,我会将标签名称放在一个变量中以便于更新。似乎标签也可以与触发器一起使用,但我无法让它与时间表一起使用。

我尝试过这样的事情,但没有任何反应。如果我用 master 更改 refs/tags/release-20200907-4,它可以工作

0 投票
2 回答
505 浏览

azure-devops - 具有多个存储库的 vsts 管道

我正在尝试使用 yaml 语法创建具有多个存储库的管道。

它失败并出现错误:步骤 3/15:复制 ["File.Pod/File.Pod.csproj", "File.Pod/"] 复制失败:stat /var/lib/docker/tmp/docker-builder593133002/File. Pod/File.Pod.csproj:没有这样的文件或目录##[错误]复制失败:stat /var/lib/docker/tmp/docker-builder593133002/File.Pod/File.Pod.csproj:没有这样的文件或目录##[错误]/usr/bin/docker 失败,返回码:1

我完全不知道为什么找不到 csproj(它位于 File.Pod 的根目录中

编辑:
这是文件夹结构
Repository1:
C:\git\File.POD:包含 dockerfile 和 File.POD.csproj
Repository2:
c:\git\Shared.Lib\File.Service:包含 File.Service.csproj
c:\ git\Shared.Lib\File.DAL:包含 File.Dal.csproj

Docker文件:

您会注意到 dockerfile 没有 file.service 的副本(我尝试了多次和语法)。错误一直是:
2020-09-09T21:51:40.1492619Z 步骤 9/24:运行 dotnet publish "File.Pod.csproj" -c Release -o /app
2020-09-09T21:51:40.1744542Z --- > 在 366a72721b48
2020-09-09T21:51:40.7879735Z 中运行 Microsoft (R) Build Engine 版本 16.7.0+7fb82e5b2 for .NET
2020-09-09T21:51:40.7880612Z 版权所有 (C) Microsoft Corporation。版权所有。
2020-09-09T21:51:40.7881083Z
2020-09-09T21:51:41.2560630Z 确定要恢复的项目...
2020-09-09T21:51:41.2590027Z 跳过项目
“/src/Shared.Lib/File.Service/File.Service.csproj”,因为找不到。2020-09-09T21:51:41.2607019Z 跳过项目 2020-09-09T21:51:42.5389794Z
/usr/share/dotnet/sdk/3.1.402/Microsoft.Common.CurrentVersion.targets(1850,5):警告:引用的项目“../Shared.Lib/File.Service/File.Service.csproj”不存在。[/src/File.Pod/File.Pod.csproj]

0 投票
4 回答
2877 浏览

azure-devops - Azure YAML 管道是否支持触发器中路径筛选器中的通配符?

我在 git 存储库中有这样的项目(文件夹)结构:

(示例被简化,实际上有更多的项目/文件夹。)

我想要不同部分的不同管道。例如,每当在任何后端项目的master分支中提交任何文件时都会触发管道。像这样的东西:

问题是,那个过滤器src/Sample.Backend.*不起作用。我必须添加每个后端文件夹的确切名称才能使其正常工作。我可以使用exclude,但我有同样的问题 - 还有许多其他项目,我必须将它们全部命名。

我发现不支持通配符:https ://github.com/MicrosoftDocs/azure-devops-docs/issues/397#issuecomment-422958966

有没有其他方法可以达到相同的结果?

0 投票
1 回答
65 浏览

docker - Dockerize 示例 dotnet core exe 应用程序到 linux pod 中的 kubernetes

我正在尝试创建一个 dotnet 核心应用程序并通过 azure yaml 管道(具有多个存储库)将其部署到 kubernetes 集群
我遇到以下错误:CSC:错误 CS5001:程序不包含适合的静态“主要”方法对于入口点 [/src/File.Pod/File.Pod.csproj]

该项目是使用以下命令创建的: dotnet new console -o File.Pod-n File.Pod
我的目标是部署一个 exe。Internet 上的大多数文档都在讨论部署 ASPNET Web 应用程序。

csproj 生成

和码头文件:

作为 ENTRYPOINT,我尝试了 ENTRYPOINT ["dotnet", "run"] 或 ENTRYPOINT ["dotnet", "File.POD.DLL"] 没有区别。

我觉得问题出在图像的类型上(FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build),但我不确定。我尝试了各种具有相同结果的方法。

确切的错误日志:
2020-09-11T11:05:41.9723837Z 步骤 10/26:运行 dotnet build "File.Pod.csproj" -c Release -o /app 2020-09-11T11:05:42.0083655Z --->在 7ed9311b9c89
2020-09-11T11:05:42.7118936Z Microsoft (R) Build Engine 版本 16.6.0+5ff7b0c9e 中运行,适用于 .NET Core
2020-09-11T11:05:42.7119408Z 版权所有 (C) Microsoft Corporation。版权所有。
2020-09-11T11:05:42.7119642Z
2020-09-11T11:05:43.1438745Z 确定要恢复的项目...
2020-09-11T11:05:45.6330496Z 已恢复 /src/File.Pod/File.Pod.csproj (在 2.04 秒内)。
2020-09-11T11:05:45.6330978Z 已恢复 /src/Shared.Lib/File.Service/File.Service.csproj(在 2.05 秒内)。
2020-09-11T11:05:45.7516552Z 已恢复 /src/Shared.Lib/File.DAL/File.DAL.csproj(在 101 毫秒内)。
2020-09-11T11:05:49.6118355Z File.DAL -> /app/File.DAL.dll
2020-09-11T11:05:50.2378452Z File.Service -> /app/File.Service.dll
2020-09- 11T11:05:50.6394251Z CSC:错误 CS5001:程序不包含适用于入口点的静态“Main”方法 [/src/File.Pod/File.Pod.csproj]
2020-09-11T11:05:50.6525494Z
2020-09-11T11:05:50.6525914Z 构建失败。
2020-09-11T11:05:50.6531013Z
2020-09-11T11:05:50.6536286Z CSC:错误 CS5001:程序不包含适用于入口点 [/src/File.Pod/File. Pod.csproj]
2020-09-11T11:05:50.6541921Z 0 警告
2020-09-11T11:05:50.6542199Z 1 错误

0 投票
1 回答
288 浏览

azure-devops - VSTS 管道步骤 PublishPipelineArtifact 在清单部署任务上失败

VSTS 自动为我创建了一个 yaml 管道。它在步骤 PublishPipelineArtifact 失败。

在此处输入图像描述

我不熟悉 yaml 语法。
下面是自动生成的 yaml 的摘录。2个步骤谈论清单。但是我的 Visual Studio 项目没有任何清单文件或目录,并且 VSTS 没有生成任何 Deployment.yml 或 service.yml。我不知道为什么它会失败,以及为什么这样的 yaml 是用不存在的依赖关系生成的。(如果我使用图形标准方式创建管道(不要求 yaml 管道),它不会失败并且不会生成清单部署步骤)。

据我所知,清单文件夹存在于存储库中。 在此处输入图像描述

我是否需要在 DockerFile 中的某个地方要求将其复制到某个地方

分支是 dev 在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
349 浏览

azure-devops - 使用管道变量在 Azure DevOps 上的 CronTab 中动态更改分钟

我有一个 yaml 管道,我想使用变量管道设置 CRON 分钟数,以避免提交和拉取请求。

当我尝试做这样的事情时,我得到语法错误:

它在字符串中不起作用 - 这是我得到的错误:

解析管道 YAML 时遇到错误:/execution.yaml(行:8,列:4):
验证 cron 输入时出错。格式不正确的 cron 语法:'*/$(Minutes) * * * *'。

而且在外面也行不通。

/execution.yaml(第 8 行,第 4 列):
验证 cron 输入时出错。格式不正确的 cron 语法:'$(CronTab)'。

为什么它不接受来自 Pipeline 变量的语法?