标签: azure-devops-pipelines

Azure Pipelines:PublishBuildArtifacts 和 PublishPipelineArtifact 任务之间的区别?

我注意到PublishPipelineArtifact任务的存在,但我不清楚与旧的PublishBuildArtifacts任务是否有任何功能差异?

azure-pipelines azure-pipelines-yaml azure-devops-pipelines

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

在特定管道阶段禁用源代码签出

我有一个具有多个阶段的管道,并且会在所有阶段自动签出源代码。我不需要源代码,只需要发布的工件。

如何禁用特定阶段的源代码签出?

azure-devops azure-devops-pipelines

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

Azure DevOps 管道触发器问题消息不会消失

我们的团队正在实施 Azure DevOps 测试管道。在我们最初提交创建管道 .yml 文件后,显示了此错误消息。经过研究后,我意识到我忘记将触发器包含在 .yml 中。但是添加后,这个错误消息并没有消失。不过,管道正在按预期工作,我们只是使用手动触发器,如下所示。唯一列出的问题来自我们最初的提交。有没有一种方法可以让我承认这个错误并让它消失,或者我是否可能错过了一个我还没有注意到的不同错误?感谢您提前提供任何帮助,如果我可以提供任何其他信息,请告诉我。

以下是我在查看该管道的运行时看到的错误消息。我还附上了我如何设置触发器的屏幕截图。 在此输入图像描述

在此输入图像描述

编辑:根据要求,我在下面包含了实际的 .yml 文件代码,并进行了轻微的命名修改。我们确实有一些自定义插件,例如为未跟踪但仍需要创建的文件创建文件。因此,您可能需要删除它们来测试这一点。

trigger:
- none

pool:
  name: myPool
  demands:
  - msbuild
  - visualstudio

steps:

- task: NuGetToolInstaller@0
  displayName: 'Use NuGet 4.4.1'
  inputs:
    versionSpec: 4.4.1

- task: NuGetCommand@2
  displayName: 'NuGet restore'
  inputs:
    restoreSolution: '$(Parameters.solution)'

- task: eliostruyf.build-task.custom-build-task.file-creator@6
  displayName: 'Create Connection Strings file'
  inputs:
    filepath: '$(System.DefaultWorkingDirectory)/ID_Web/config/ConnectionStrings.config'
    filecontent: |
     <connectionStrings>
     
     </connectionStrings>
     
    endWithNewLine: true

- task: eliostruyf.build-task.custom-build-task.file-creator@6
  displayName: 'Create Developer Settings File'
  inputs:
    filepath: '$(System.DefaultWorkingDirectory)/ID_Web/config/developerAppSettings.config'
    filecontent: |
     <appSettings>

     </appSettings>
    endWithNewLine: true


- task: …
Run Code Online (Sandbox Code Playgroud)

yaml azure-devops azure-devops-pipelines

13
推荐指数
2
解决办法
9570
查看次数

引发警告时更改 Azure DevOps 管道构建状态

我们有一个 Azure DevOps 管道,它使用带有 Azure DevOps Server 2019 的自托管 Windows 代理。该管道运行我们的前端测试,没有任何问题。然而,有时我们的 linting 步骤会发现它作为警告抛出的问题(例如未使用的变量)。这就是我们希望它做的,但问题是这些警告没有被提升。因此,查看它们的唯一方法是查看构建执行。

我们可以通过向 linting 命令添加 vso 格式化程序来解决这个问题:npm run nx run-many -- --target="lint" --all --skip-nx-cache=true --parallel --format=vso。所以现在警告是这样抛出的:

警告截图

如绿色框中所示,警告正确显示。然而,在红色圆圈中,构建、作业和 linting 任务的状态都是成功。有没有办法可以将此构建、作业和任务标记为警告,以便我们知道要进一步查看?感谢您的帮助,如果我可以提供更多信息,请告诉我。

azure-devops azure-devops-pipelines

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

Azure DevOps:如何在 YAML 模板管道上禁用 CI 触发器?

在模板管道中,您不能放置任何触发器语句,例如trigger: noneMicrosoft文档中指定的禁用 ci 触发器,所以我想知道您如何防止每次更新这些管道或同一分支中的任何其他 yaml 文件时执行这些管道?

azure-devops azure-pipelines azure-pipelines-yaml azure-yaml-pipelines azure-devops-pipelines

7
推荐指数
4
解决办法
6799
查看次数

Azure DevOps 管道未运行,因为您已达到可并行运行的最大请求数

键入“Microsoft 托管的私有”

在新帐户上运行管道时出现此错误,因此有足够的积分/限制它已经卡住了近 20 多个小时,尝试重新创建项目/订阅/管道等等,但没有骰子

vscommunity 上有类似的问题但没有答案所以希望有人在这里有见解

原来这是最近实施的一个“功能”,关闭这个问题将把它留在这里,直到它被删除或以防万一有人偶然发现同样的错误

https://devblogs.microsoft.com/devops/change-in-azure-pipelines-grant-for-private-projects/

azure-devops azure-devops-pipelines

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

Azure Devops 使用存储库名称获取repositoryId

我正在编写一个 BASH 脚本,其中创建一个天蓝色存储库,然后推送代码。执行此步骤后,它将继续并通过azure-pipeline.yamlAzure 存储库中存在的文件创建一个 Azure 管道。

在此步骤中,我们需要传递存储库 ID 才能创建管道,但这里的问题是我无法将其保留为用户输入,因为它将在脚本本身内创建,现在我对此感到震惊。

有什么方法可以直接在脚本中从新创建的存储库中获取存储库 ID 吗?

https://dev.azure.com/{{organization}}/{{project}}/_apis/pipelines?api-version=6.0-preview.1
Run Code Online (Sandbox Code Playgroud)
{
    "folder": "Folder-Name",
    "name": "Pipeline-Name",
    "configuration": {
        "type": "yaml",
        "path": "azure-pipelines.yml",
        "repository": {
            "id": "Repo-ID",
            "name": "Repo-Name",
            "type": "azureReposGit"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

bash azure-devops azure-pipelines azure-devops-rest-api azure-devops-pipelines

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

Azure Devops 管道,用于构建和部署我的本机 Android 应用程序 Google Play 商店或 App Center 作为 App Bundle

我需要设置 Azure 一个 DevOps 管道来构建我的本机 Android 应用程序并将其作为 App Bundle 部署到 Google Play 商店或应用程序中心。

我可以弄清楚如何部署 apk,但需要帮助来部署应用程序包(.aab)。任何帮助,将不胜感激。

android azure-devops azure-pipelines azure-devops-pipelines

6
推荐指数
2
解决办法
6337
查看次数

Azure DevOps Pipeline:本地通过的测试在管道上失败

我们的团队正在尝试实施 Azure DevOps 管道,但遇到了一些问题。作为背景,我们正在自托管 Windows 服务器上运行测试。我们对所有工作进行了前端测试,但现在我们在让后端通过方面遇到了问题。

虽然大多数测试都顺利通过,但我们还是有一些情况没有按预期工作。尽管它们应该能够并行运行,但我将其关闭以验证这不是问题。我还尝试过单独运行它们,没有任何明显的变化。

我们得到的错误只是简单的断言失败,如下所示,它没有给我们提供太多信息。

 Error Message:
   Assert.AreEqual failed. Expected:<True>. Actual:<False>.
Run Code Online (Sandbox Code Playgroud)

但行号指向一个模拟设置,如下所示,我不明白。

mockQueryHandler.Setup(x => x.Handle(It.IsAny<FindQuery>())).Returns(info);
Run Code Online (Sandbox Code Playgroud)

目前给我们带来最多问题的测试类是测试我们的事件警报功能的测试类。看起来第一个测试会通过,但后面的测试会失败。但是,我们的管道设置可以重新运行任何失败的测试三次,直到它放弃。因此,每次重新运行时,下一个测试都会通过。我唯一能想到的是我们的自动模拟由于某种原因给我们带来了麻烦。我们按照 AutoMock - 如何使用 Keyed Registrations 进行单元测试?

我们模拟如下:

  var IAbstractEventFactoryMock = new Mock<IAbstractEventFactory>();
  using (var mock = AutoMock.GetLoose(builder => builder.RegisterInstance(IAbstractEventFactoryMock.Object).Keyed<IAbstractEventFactory>("EventLogFactory").Keyed<IAbstractEventFactory>("ArpEventLogFactory"))) {
...
}
Run Code Online (Sandbox Code Playgroud)

下面是我们的 .runsettings 文件

<RunSettings>  
  <RunConfiguration>
    <ResultsDirectory>.\TestResults</ResultsDirectory>
  </RunConfiguration>

  <MSTest>
  </MSTest>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)

下面是我们用来运行测试的 YAML

steps:
- task: VSTest@2
  displayName: 'Run All Tests'
  inputs:
    testAssemblyVer2: |
     **\*ID_Test*.dll
     !**\*TestAdapter.dll
     !**\obj\**
    searchFolder: '$(System.DefaultWorkingDirectory)/ID_Test'
    runSettingsFile: 'ID_Test/.runsettings'
    runInParallel: false
    runTestsInIsolation: true
    codeCoverageEnabled: false
    testRunTitle: 'Unit Tests' …
Run Code Online (Sandbox Code Playgroud)

unit-testing azure-devops azure-devops-self-hosted-agent azure-devops-pipelines

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

具有 Terraform 的 Azure DevOps Pipelines 在 arm_xxx 参数上失败

我们在 Azure-Devops 中有多个管道执行 Terraform init-plan-apply。到目前为止,工作正常。\n但是突然间,我们在 Init 阶段遇到了这些错误。

\n
Initializing the backend...\n\xe2\x95\xb7\n\xe2\x94\x82 Error: Invalid backend configuration argument\n\xe2\x94\x82 \n\xe2\x94\x82 The backend configuration argument "arm_subscription_id" given on the command line is not expected for the selected backend type.\n\xe2\x95\xb5 Error: Invalid backend configuration argument\n\xe2\x94\x82 \n\xe2\x94\x82 The backend configuration argument "arm_tenant_id" .....\n\xe2\x94\x82 The backend configuration argument "arm_client_id" .....\n\xe2\x94\x82 The backend configuration argument "arm_client_secret" ....\n
Run Code Online (Sandbox Code Playgroud)\n

在hasicorp网站上我发现了一个关于这个https://www.terraform.io/upgrade-guides/0-15.html的评论。\n但是init命令的生成完全是由DevOps完成的,没有地方我可以将arm_client_id更改为client_id(以及其他)。

\n

任何人都见过这种行为并能够解决它。

\n

terraform-provider-azure azure-devops-pipelines

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