标签: azure-pipelines

Azure Devops Build:计划构建的参数

有什么方法可以在按计划触发时将参数传递给 azure devops 构建管道 (YAML)?例如,如果您想每晚构建一个发布构建,但又想每周构建一个调试构建?

必须将整个构建管道复制到 SomeBuild-Debug 才能创建默认为 configuration=debug 的构建,以便能够安排它,这似乎是不对的?

azure-devops azure-pipelines

9
推荐指数
2
解决办法
5689
查看次数

在 Azure Pipelines 中集成 Angular 测试用例

谁能提供有关如何将 Angular 测试用例(Jasmine/Karma)集成到 Azure Pipelines 中的信息。构建管道成功执行后,测试用例结果显示在哪里

automated-tests karma-jasmine azure-pipelines angular

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

如何设置包含以下格式的日期的 Azure DevOps Pipeline 变量:25.07.2020

我没有使用yaml,因为我的公司使用TFVC,所以我需要经典的方式。

使用 $[pipeline.startTime] 我得到了开始时间,但现在我需要以这种方式格式化:dd.MM.yyyy

像 VSO(TFS) 中的 powershellscript - 将当前日期时间作为变量帮助了我,但直接在变量中设置日期将是一种更干净的方法

powershell azure-devops azure-pipelines-build-task azure-pipelines azure-devops-server-2019

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

如果警告数量超过一定限制,AzureDevOps 构建管道将失败

我热衷于不让项目质量失控。

我知道在某些情况下警告可能有意义,但我担心警告的数量会随着时间的推移而增加。

我有一个 Azure DevOps 构建(门控提交)管道,我只想允许 10 个警告,以便在某些时候开发人员必须解决他们的警告。

有没有办法对警告进行计数并在警告计数超过一定数量时阻塞管道?

谢谢!

azure devops azure-pipelines

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

从 azure pipeline 检出 git 子模块

我目前正在开发一条天蓝色的管道。在我的主 github 存储库(存储库 A)中,我添加了另一个 github 存储库作为子模块。(回购协议B)

我的目标是使用以下 YAML 在管道开始处签出子模块:

stages:
- stage: checkout
  jobs:
  - job: checkout
    steps:
      - checkout: self
        submodules: true
        persistCredentials: true
Run Code Online (Sandbox Code Playgroud)

然后尝试签出子模块,但以以下错误结束:

Cloning into '/home/vsts/work/1/s/devops-scripting'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
fatal: clone of 'https://github.com/sourcerepo/devops-scripting.git' into submodule path '/home/vsts/work/1/s/devops-scripting' failed
Run Code Online (Sandbox Code Playgroud)

这似乎是使用不正确的用户/密码的问题 - 如果我推动我可以简单地使用提供的用户/密码参数,但这似乎不适用于签出。

如何通过天蓝色管道更新子模块?

git azure git-submodules azure-pipelines

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

如何在 Azure Pipelines 上正确执行文件转换

我正在尝试根据我发布到的每个环境在我的 Web.config 上进行文件转换。大多数情况下,在我部署到发布管道上的 UAT 阶段之前,一切看起来都很好。

在我的构建管道中,这是我正在使用的 YAML 文件:

# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

pool:
  vmImage: 'windows-latest'

variables:
  solution: 'SubmissionService.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  displayName: 'Install Newer Version on NuGet'
  inputs:
    checkLatest: true

- task: NuGetCommand@2
  displayName: 'Restore NuGet Packages for Solution'
  inputs:
    command: 'restore'
    restoreSolution: '$(solution)'
    feedsToUse: config
    nugetConfigPath: ./Nuget.config
    
- task: VSBuild@1
  displayName: 'Create Artifact For Solution' …
Run Code Online (Sandbox Code Playgroud)

azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline azure-pipelines-release-task azure-pipelines-tasks

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

在 Azure DevOps Pipelines 中部署生成时,$(Build.ArtifactStagingDirectory) 变量的值会发生变化

我有一个 DACPAC 部署任务失败,因为由于某种原因$(Build.ArtifactStagingDirectory)管道变量的值在构建管道和发布管道之间发生变化。在构建管道中,该变量设置为C:\agent\_work\2\a,但在发布管道中它是C:\agent\_work\r2\a。这会导致发布管道在尝试部署 DACPAC 工件时失败,因为它正在查找的文件夹是空的;工件实际所在的文件夹将被忽略。如何使这些变量在构建和发布管道之间保持一致,以便从生成的同一文件夹中检索工件?这些变量似乎是内置的,所以我看不到任何方法来更改它们。我总是可以硬编码路径,但这似乎有点笨拙......

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

9
推荐指数
3
解决办法
4万
查看次数

在 Azure DevOps 管道中使用 .NET Core CLI 任务 (DotNetCoreCLI@2) 抑制警告

尝试使用 .NET Core CLI 任务 (DotNetCoreCLI@2) 抑制 Azure DevOps 管道中的警告,但出现以下错误:

MSBUILD:错误 MSB1001:未知开关。开关:--noWarn:MSB3277

以下是代码示例,类似于我在与 msbuild cli 参考相关的几篇文章中使用开关的方式:

- task: DotNetCoreCLI@2
  displayName: Release Build
  inputs:
    command: 'build'
    projects: '${{ parameters.solutionPath }}'
    arguments: --configuration Release --noWarn:MSB3277
Run Code Online (Sandbox Code Playgroud)

我也尝试过小写 --nowarn ,但仍然没有运气,所以任何有关此问题的帮助将不胜感激。

预先感谢您的支持,

特里

azure-devops dotnet-cli azure-pipelines

9
推荐指数
2
解决办法
3620
查看次数

在 Azure 管道中的另一个作业中使用从上一个作业检出的文件

我在 Azure DevOps 中创建了一个管道,用于构建 Angular 应用程序并对其运行一些测试。我将管道分为两个工作:构建和测试。构建作业成功完成。即使构建作业已经完成,测试作业仍会再次从 Git 中检查代码。测试作业需要在构建作业中创建的文件才能像 npm 包一样成功运行。

这是我的 YAML 文件:

trigger:
  - develop
variables:
    npm_config_cache: $(Pipeline.Workspace)/.npm
    system.debug: false
stages:
  - stage: Client
    pool:
        name: Windows
    jobs:
      - job: Build
        displayName: Build Angular
        steps:
          - template: templates/angularprodbuild.yml
      - job: Test
        displayName: Run Unit and Cypress Tests
        dependsOn: Build
        steps:
          - template: templates/angularlinttest.yml          
          - template: templates/angularunittest.yml
          - template: templates/cypresstest.yml
Run Code Online (Sandbox Code Playgroud)

我的代理池是在阶段级别声明的,因此两个作业将使用相同的代理。此外,我还向测试作业添加了 dependentOn,以确保使用相同的代理。检查日志后发现,实际上使用的是同一个代理。

如何让测试作业使用在构建作业中创建的文件而不再次检出代码?如果有帮助的话,我正在使用 Angular 11 和 Azure DevOps Server 2020。

azure-devops azure-pipelines

9
推荐指数
2
解决办法
8208
查看次数

使用 Azure 管道秘密变量在构建代理上设置环境变量

我们有某些依赖于某些秘密的功能测试。这些秘密是从 Azure Key Vault (AKV) 获取的,为了从构建代理进行连接,我使用环境变量和AzureIdentity。我使用 powershell 在构建代理计算机上设置这些环境变量。当我使用非秘密管道变量时,一切正常,但是当我切换到 AZURE_CLIENT_SECRET 的秘密管道变量时,身份验证开始失败。我尝试使用脚本从秘密管道变量设置环境变量的方法,但它不起作用。我也尝试过这里提到的方法,但这也不起作用。关于如何使用秘密管道变量设置环境变量有什么建议吗?

azure-devops azure-pipelines

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