问题标签 [build-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 回答
660 浏览

azure-devops - 如何在 azure 管道内部版本号中指定时间字符串的格式

从文档中,您可以格式化 azure devops 构建管道的内部版本号,但当时的格式化对我不起作用。

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/run-number?view=azure-devops&tabs=yaml

我想要类似的东西

YY.MM.DD.MMSS

name: $(Date:yy).$(Date:MM).$(Date:dd).$(Hours)$(Minutes)

但是,这将在下午 3 点生成单个数字,例如“20.08.12.150”。有谁知道像日期字段这样强制格式的方法,所以它总是2个字符?$(Hours:hh)$(Minutes:mm) 不起作用;我确实尝试过。

谢谢

0 投票
1 回答
633 浏览

azure - 如何从 Azure DevOps 中的构建管道创建更改集以将某些文件推送到我的存储库

我在 azure DevOps 上的 TFS 服务器上有我的代码仓库。在此应用程序的 CI 部分中,我执行了一些操作,然后生成一个文件,假设它是从存储库中的现有版本创建的某种日志文件或报告,但现在我想重新签入我的代码来自构建管道的回购。那么什么是最好的解决方案呢?

0 投票
1 回答
1717 浏览

azure-devops - 从 PR Trigger 获取源分支的 Azure Devops Build Pipeline

因此,我一直在构建一个构建管道,每当对 master 执行拉取请求时都会触发该管道,因此我们有一个分支策略,以便对 master 分支的唯一更改是通过拉取请求。

我希望构建管道检查 PR 的源分支,并作为构建管道的一部分对源分支进行一些提交。我以为我可以只使用该Build.SourceBranchName变量,但是当触发管道时 SourceBranchName 为主。所以我无法使用它。

有没有简单的方法可以做到这一点?

0 投票
1 回答
644 浏览

azure-devops - Blazor WebAssembly Azure DevOps 构建管道发布工件

我们为我们的 blazor webassembly 项目创建了一个构建管道 yaml,其中包括一个发布任务。出于某种原因,只有 wwwroot 文件夹项目会生成到放置文件夹中,而通常位于 wwwroot 文件夹之外的所有其他二进制文件由于某种原因不会生成。

这是构建和发布的 yaml 文件的一部分。是否设置不正确以获取生成和发布的所有文件,或者只是它只会为我们提供作为 webassembly 项目的静态文件?

此外,由于我们发现 Blazor webassembly 在使用 Web 服务的 Azure 配置设置时存在问题,因此我们需要让发布过程操作 web.config 文件,以便我们可以设置ASPNETCORE_ENVIRONMENT构建和部署。到目前为止,我发现的所有内容在 DevOps 构建管道中运行时都不起作用,因为它们适用于 dotnet 脚本。有谁知道如何做到这一点?我们试图添加发布任务site /p:EnvironmentName=Development--output参数,但它说它不能在多个项目上运行,即使我们将项目参数设置为一个(上面没有显示,因为我们现在恢复正常) .

谢谢你,克里斯卡尔弗特

0 投票
0 回答
131 浏览

c# - Azure 构建代理和 xamarin.android 构建

我有一个 vm,我在上面安装了最新版本的 microsoft visual studio (16.7.3)。该机器旨在用作 azure devops 管道的构建代理。

我尝试了以下。打开Visual Studio,下载并打开项目源,构建(releasebuild)项目,归档并签署apk并将其安装在目标设备(android 7.0)上->这很成功。该应用程序按预期工作。

我还在这台机器上安装了 build-agent-package (vsts-agent-win-x64-2.170.1.zip)。我对其进行了配置,并在 azure devops 站点成功注册。

当我运行针对同一项目(releasebuild)的构建管道时,代理会生成并签署 apk 包。此 apk 包安装在目标设备上,但应用程序未启动。这意味着:没有错误消息,只有白屏。

我比较了两个apk,它们略有不同,内部文件夹结构相同,但有些文件大小不同。

此测试针对 azure devops server 2020 rc2 运行。但我在使用 tfs 2018 和相应的构建代理时遇到了同样的问题。

谁能给我一些提示如何研究这个问题?

提前谢谢了

基克

0 投票
2 回答
303 浏览

azure-devops - 在 Azure DevOps 上无法运行的项目中,将文件从 NuGet 包复制到 OutDir

我只有 Azure DevOps 的问题!

当我右键单击并构建时,它在 Visual Studio 2019 中运行良好。如果我在本地使用 CMD 的 dotnet 构建,它也可以正常工作。

Nuget 包如下所示:

csproj

道具文件

当我在 Azure 上运行管道时,我通过“dotnet build”使用此版本的 MSBuild(Microsoft (R) Build Engine 版本(16.7.0+7fb82e5b2 for .NET))。

管道构建步骤:

我在构建后有一个发布步骤。

这开始变得非常令人沮丧:)

0 投票
1 回答
558 浏览

git - 如何在构建失败的情况下拒绝 git 中的提交

我们在 AzureDevop 中有一个 git repo,有 300 多个贡献者,我想知道如果构建在完成 PR 时失败,我们是否可以拒绝提交给 master。在没有这个解决方案的情况下,当一个 PR 合并构建失败时,其他分支将有缺陷的产品拉入或其他人合并也将失败的风险。

0 投票
1 回答
45 浏览

azure-devops - 有什么方法可以在 Azure Build Pipeline 运行期间缓存签名的二进制文件并拉取它们?

我们有一个 Azure Build Pipeline 正在构建我们的产品。我们最近迁移到自定义代理池,因此我们现在可以控制池中的虚拟机。我最近添加了一个代码签名步骤。此步骤是对所有二进制文件进行签名,并导致构建时间加倍。到目前为止,我还没有考虑过缓存,因为我们的完整构建运行只有大约 20 分钟。现在我们已经 45 岁或更长了。

我正在尝试考虑如何缓存,但如果我缓存签名的二进制文件,我还没有哈希或任何我可以与新建的未签名文件进行比较的东西。我可以缓存未签名的二进制文件和已签名的二进制文件,然后在构建后将未签名的二进制文件与刚刚构建的文件进行比较。对于匹配项,我可以从缓存中获取签名版本,而对于其他人则继续进行签名。

这似乎过于复杂。还有其他选择吗?

0 投票
1 回答
696 浏览

azure-devops - Azure 构建管道偶发错误,[CredentialProvider]设备流身份验证失败

这可能每 2 周发生一次,但最近它发生了几次,直到构建成功一次。

获取https://api.nuget.org/v3-flatcontainer/xamarin.uitest/3.0.9/xamarin.uitest.3.0.9.nupkg ##[错误]C:\Program Files (x86)\Microsoft Visual Studio\ 2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets(128,5):错误:[CredentialProvider]设备流认证失败。向用户展示了设备流程,但在 90 秒内未做出反应。

----- 更新---- 在进一步挖掘日志后,我发现这是由于对私人提要的 401(未经授权)访问(与管道失败的项目在同一组织中)。一个临时解决方案是从解决方案构建配置中删除需要此私有提要的特定 *.csproj,并从管道中删除私有提要。这使管道再次工作。

----更多管道信息----我不能在这里发布整个代码。

0 投票
2 回答
383 浏览

rest - 通过 REST 将 Azure DevOps 服务器管道的构建状态发送到 Bitbucket

在构建成功/失败后,我正在尝试将构建管道的状态发送到 Bitbucket Server。使用 Postman,我可以使用 REST API 成功更新提交的构建状态:

但是,当我尝试在管道中的无代理作业中运行 Invoke REST API 时,请求失败并且无法找到服务器。这是作业日志的输出:

我能够从 Azure DevOps 机器运行 Postman 请求,因此不存在防火墙问题。有趣的是,我注意到 REST 调用的地址在机器地址之后有一个奇怪的 //,不知道这是否会导致问题......?

由于 Azure DevOps 构建管道中没有执行后门(类似于发布门),我还没有找到更好的方法来执行此操作。

还有其他人在这方面取得成功吗?

谢谢,卡里