标签: azure-pipelines

为什么我无法在不运行管道的情况下保存它?

当我创建管道的过程中,我可能想保存它而不运行它。

但是没有“仅保存”按钮。为什么不?

保存并运行

azure-devops azure-pipelines

1
推荐指数
1
解决办法
987
查看次数

azure pipelines - 如何根据条件任务结果中断/取消发布

我有一个由 CI 触发的发布管道,如果该版本尚不存在,我想推送新版本的 nuget 包。

为此,我有一个简单的命令行任务,它检查 nuget.org 上是否存在该 nuget 并将结果存储在环境变量中。

然后,我可以设置后续步骤的条件,只有当该值变量为 true 时才会执行该步骤。

在此输入图像描述

这一切都很好,但是我想知道如何简单地停止发布过程并跳过所有后续步骤,而不需要一一设置它们的条件。

另外,如何将任务的构建状态设置为“已取消”?

azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline

1
推荐指数
1
解决办法
7380
查看次数

如何将 Bash 或 PowerShell 脚本添加到 Azure DevOps 管道

我对 CI 很陌生,正在尝试 Azure DevOps。

我想在 CI 管道中使用自动化测试工具,该工具使用 Bash 脚本和在 CI 管道内运行的 PowerShell 脚本来触发测试工具。

如何将 Bash 或 PowerShell 脚本添加到 Azure DevOps 中的管道中,以便脚本运行并触发测试工具?

continuous-integration azure-devops azure-pipelines

1
推荐指数
1
解决办法
3561
查看次数

为什么拉取请求构建验证中的路径过滤器不能按预期工作?

或者,为什么 Microsoft 记录了路径过滤器(截至 2019 年 6 月 14 日)。

PR 构建验证中路径过滤器的行为可能被认为是不直观的。

构建的启动或未触发没有明显的原因。

azure-pipelines

1
推荐指数
1
解决办法
1787
查看次数

发布管道中的 Azure DevOps 日志记录命令

我试图通过在任务中设置一些环境变量来自定义管道版本的输出。我找到了以下链接: https://learn.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands ?view=azure-devops&tabs=powershell

然而这似乎不起作用。我所做的只是创建一个具有单个任务(bash 或 PS)的管道,并通过任务的内联版本声明链接中指定的命令。

有人已经成功地使这些命令起作用了吗?我做错了什么和/或不完整吗?

有没有人有更好的方法来使用任务中的相关信息来自定义管道?例如,通过版本名称,或特定版本的描述和/或标签?

编辑:

Write-Host "##vso[task.setvariable variable=sauce;]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"

Write-Host "Non-secrets automatically mapped in, sauce is $env:SAUCE"
Write-Host "Secrets are not automatically mapped in, secretSauce is $env:SECRETSAUCE"
Write-Host "You can use macro replacement to get secrets, and they'll be masked in the log: $(secretSauce)"
Run Code Online (Sandbox Code Playgroud)

这是代码,复制并粘贴。现在我也尝试了该脚本,但它也不起作用。我使用托管的 Windows 代理。

azure azure-devops azure-pipelines azure-pipelines-release-pipeline

1
推荐指数
1
解决办法
5293
查看次数

如何强制使我的 Azure 管道 CI/CD 失败

我实现了一些天蓝色的管道任务,在某些特定条件下,构建步骤将不会执行,即它将被跳过。

我想知道如何强制跳过那些跳过的步骤。

提前致谢。

azure-pipelines

1
推荐指数
1
解决办法
456
查看次数

Azure 构建管道 - 需要权限

我在我们的环境中拥有有限的权限,我想知道必须添加哪些其他权限才能在 Azure DevOps 中创建构建管道?我无法在实际环境中创建管道,请参见下图。

环境对比图

azure-devops azure-pipelines-build-task azure-pipelines

1
推荐指数
1
解决办法
9727
查看次数

如何使用 Azure DevOps 管道变量配置 Azure Function?

我可以从 Microsoft Azure Functions 应用程序仪表板将环境变量注入 Azure Functions 应用程序:

Azure Functions 应用程序应用程序设置

使用System.Environment.GetEnvironmentVariable("AppName"),我可以检索配置的值:

[FunctionName("Status")]
public static async Task<IActionResult> Status(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequest req)
{
    var appName = System.Environment.GetEnvironmentVariable("AppName");

    return new OkObjectResult($"{appName} - OK");
}
Run Code Online (Sandbox Code Playgroud)

并且它可靠地返回: 邮递员结果

但我希望环境变量来自 Azure DevOps Pipeline Variables 作为发布管道的一部分,以便该值可以与特定版本、范围等相关联: Azure DevOps 管道变量

如何才能做到这一点?做到吗?

azure azure-devops azure-functions azure-pipelines

1
推荐指数
1
解决办法
3043
查看次数

如何阻止 msbuild 在 azure Devops 管道中转换 web.config

我正在使用 ASP.NET MVC 应用程序,我们已开始将其升级到 azure devops(代码和管道)。我们有多个 web.config 文件,每个环境(测试、发布等)各有一个。之前,我们已经构建了用于本地发布的系统,并将 zip 导入到 IIS 中。在本地发布(右键单击,发布)期间,Visual Studio 获取与当前构建配置(在我们的示例中为“发布”)相关的 Web.*.config 文件,并将其与基本 Web.config 合并到单个 Web.config 文件中。

使用管道时,我们的目标是不在构建步骤中转换 Web.config 文件,而是在发布步骤中转换。我们想要构建 1 个包,并在测试、登台和生产服务器上使用相同的包,并使用发布管道中的xml 转换设置将不同的 web.config 文件传递​​到不同的环境。如果从测试到发布的整个过程中都测试相同的二进制文件,我们会对我们的流程更有信心。

但是,每当我使用“构建解决方案”步骤时,无论我使用哪种设置,它总是会进行 Web.config 文件转换。

到目前为止我所做的:我查看了 MS 文档,但没有找到任何相关内容。我搜索了 SO 并找到了一些线程,例如这个:web.config conversion does not work on build server说你需要TransformXml在 .csproj 文件中添加一个 emelent 才能使 XML 转换工作,但我们没有一个,所以我无法删除它并看看这是否有帮助:)大多数线程似乎建议将不同的标志传递给 msbuild 以阻止它转换 xml 文件(如下所列),但似乎没有一个起作用。我发现了一种解决方法,但它并不真正适合我们项目的设置方式。我已根据此 github 问题删除了<DependentUpon>相关 Web.*.config 文件的标签。不幸的是,没有任何帮助。

这是构建步骤的 YAML:

steps:
- task: VSBuild@1
  displayName: 'Build …
Run Code Online (Sandbox Code Playgroud)

c# msbuild azure-devops azure-pipelines

1
推荐指数
1
解决办法
4313
查看次数

如何解决 MSBuild 引发错误 MSB3030:无法复制文件“Scripts\dist\main.bundle.js”,因为找不到该文件

Azure Pipeline 项目有两个构建代理

  1. 构建角度项目。

构建成功,资产、chunk.js 文件和bundle.js 文件作为工件发布

  1. 构建 ASP.net Web 应用程序。

我从以前的构建代理下载工件并将它们提取到$(build.stagingDirectory)/Scripts/dist目录中,因为它们将被 ASP.net 项目使用。

我的提取文件任务 ymal 是

steps:
- task: ExtractFiles@1
  displayName: 'Extract files bundle.zip'
  inputs:
    archiveFilePatterns: '$(Pipeline.Workspace)/dist/$(Build.BuildId)_bundle.zip'
    destinationFolder: '$(build.sourcesDirectory)/Scripts/dist' 
Run Code Online (Sandbox Code Playgroud)

MSBuild构建 ASP.net 项目时,它无法找到##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets(182,5): Error MSB3030: Could not copy the file "Scripts\dist\main.bundle.js" because it was not found.

MS Build yaml 是:

steps:
- task: MSBuild@1
  displayName: 'Build solution NMG.Portal.MVCForAngular'
  inputs:
    solution: NMG.WebApp.MVCForAngular/NMG.WebApp.MVCForAngular.csproj
    msbuildArguments: '/p:ProjectFile=$(build.sourcesDirectory)\NMG.WebApp.MVCForAngular\NMG.WebApp.MVCForAngular.csproj /p:DeployOnBuild=true /p:SkipInvalidConfigurations=true /p:OutDir="$(build.stagingDirectory)\\"'
    clean: false
    logProjectEvents: …
Run Code Online (Sandbox Code Playgroud)

msbuild asp.net-mvc msbuild-task angular-cli azure-pipelines

1
推荐指数
1
解决办法
2万
查看次数