标签: azure-pipelines

Azure Devops 管道的传入 webhook 触发器:“找不到给定 webHookId 的 webhook”

我尝试在项目中设置传入的 Webhook 以触发 yaml 管道。设置与传入 Webhook 的服务连接。将 yaml 片段添加到管道中,如下所示:

resources:
  webhooks:
    - webhook: testtrigger          ### Webhook alias
      connection: testconnection   ### Incoming webhook service connection
Run Code Online (Sandbox Code Playgroud)

当通过curl:调用url时curl -X POST 'https://dev.azure.com/<my org>/_apis/public/distributedtask/webhooks/testtrigger?api-version=6.0-preview' -d '{ "tags": {} }' -H "Content-Type: application/json",我总是收到错误消息:

{"$id":"1","innerException":null,"message":"Cannot find webhook for the given webHookId testtrigger. Try enabling CD trigger for this artifact.","typeName":"Microsoft.TeamFoundation.DistributedTask.Pipelines.Artifacts.WebHooks.WebHookException, Microsoft.TeamFoundation.DistributedTask.Orchestration.Server","typeKey":"WebHookException","errorCode":0,"eventId":3000}
Run Code Online (Sandbox Code Playgroud)

尝试在触发器/连接上使用不同的名称,但没有任何效果。我缺少什么想法吗?

azure webhooks azure-pipelines azure-devops-pipelines

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

Azure管道-如何执行kubectl命令

我正在尝试删除所有以“dev-...”为前缀的命名空间。该命令在命令行上运行良好,但我不确定如何在 Azure Pipelines 中运行该命令。

kubectl get namespaces --no-headers=true -o custom-columns=:metadata.name | grep dev- | xargs kubectl delete namespace
Run Code Online (Sandbox Code Playgroud)

azure kubernetes azure-pipelines kubectl

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

AzureDevops:我们可以在 yaml 中将动态值作为服务连接传递吗

我有一个yaml。我需要根据另一个任务将服务连接传递给脚本/模板,该任务检索所有必需的订阅。问题是:我可以将动态值传递给服务连接吗?它给我编译时错误。

我的代码如下:

trigger: none
pr: none

parameters:
- name: AzureSubscription
  type: object
  default: 
    xxx:
      Sub: xxx
    yyy:
      Sub: yyy

jobs:
- job:  Updating
  condition: succeeded()
  pool: 
    vmImage: "windows-latest"
  strategy:
      maxParallel: 10
      matrix: ${{ parameters.AzureSubscription }} 
  steps:
    - task: AzurePowerShell@5
      displayName: Tes
      inputs:
        azureSubscription: 'zzz'
        ScriptType: 'InlineScript'
        Inline: |
              Write-Output "subcriptionList ---- $(Sub)"
        FailOnStandardError: true
        azurePowerShellVersion: 'LatestVersion'
        pwsh: true
        
    - task: AzurePowerShell@4
      displayName: Updating
      inputs:
        **azureSubscription: ${{ sub }}** # here it is giving me error?
        ScriptType: 'FilePath'
        ScriptPath: '$(System.DefaultWorkingDirectory)/Foundation/xxxxx.ps1'
        azurePowerShellVersion: …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines azure-yaml-pipelines

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

在 Azure DevOps 上使用 YAML 有条件地声明变量组

我试图在 YAML 模板上创建一个变量(组),前提是某个参数具有值。我正在使用以下代码片段:

variables:
  - name: variableGroupName
    value: app-${{parameters.environmentInitials}}
  - template: /pipelines/variables/${{parameters.environmentInitials}}.yml
  - group: ${{variables.variableGroupName}}
  
    ${{if parameters.parentEnvironmentInitials}}:
      - group: app-${{parameters.parentEnvironmentInitials}}
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试触发管道时,我收到错误:

Encountered error(s) while parsing pipeline YAML: Expected a mapping - Unexpected state while attempting to read the mapping end. State:

SequenceState:
  IsStart: False
  Index: 3
  IsEnd: True

MappingState:
  IsStart: False
  Index: 3
  IsKey: False
  IsEnd: False

SequenceState:
  IsStart: False
  Index: 0
  IsEnd: False

MappingState:
  IsStart: False
  Index: 0
  IsKey: False
  IsEnd: False
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种组合,因为我找不到声明具有条件的组但没有成功的示例,有什么想法吗?

谢谢

yaml azure-pipelines

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

Azure DevOps 将 iOS 应用程序部署到 Firebase 应用程序分发

我有一个构建 iOS 应用程序的 Azure 管道。我正在寻找一种将 .ipa 文件部署到 Firebase 应用程序分发的方法。我找不到任何提供执行此操作的步骤的文档或参考。我看到几篇文章解释了我们可以使用 PowerShell 发布到 Firebase 应用程序分发。有没有我可以参考的参考 Azure Pipeline yaml?我对 Azure DevOps 管道还很陌生,无法完成这一步。

azure firebase azure-devops azure-pipelines

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

如何将变量传递给azure yaml中的模板参数?

我有模板

dockerbuild.yml

steps:
  - task: Bash@3
    displayName: Build an image to container registry
    inputs:
      script : echo $(PATH)
Run Code Online (Sandbox Code Playgroud)

然后是一个变量文件

var.build.yml
- name: PATH
  value: 'docker/path'
- name: PATH1
  value: 'docker/oldpath'
- name: PATH2
  value: 'docker/newpath'

azurepipeline1.yml

resources:
  repositories:
  - repository: templates
    type: git
    name: components/pipeline_templates
trigger:
- none

pool:
  name: PoolA

variables:
- template: variabletemplates/var.build.yml@templates

jobs:
  steps:
      - template: CI-CD/dockerbuild.yml@templates  # Template reference  
        parameters:
          PATH: ${{ variables.PATH }}
      - template: CI-CD/dockerbuild.yml@templates  # Template reference  
        parameters:
          PATH: ${{ variables.PATH1 }}
      - …
Run Code Online (Sandbox Code Playgroud)

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

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

直接在 Azure Pipelines 中可视化 .net 核心代码覆盖率

我有一个 .net core 项目,在 Azure DevOps 中设置了管道(YAML、多阶段)管道。我们有一堆在管道运行时执行的单元测试 - 一切都很好。

然而,我们希望更深入地了解我们的代码覆盖率。所以我们这样配置我们的任务

- task: DotNetCoreCLI@2
  displayName: Run UnitTests
  enabled: true
  inputs:
    command: test
    projects: '**/PM.UnitTests.csproj'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
Run Code Online (Sandbox Code Playgroud)

结果是这样的

在此输入图像描述

我们现在可以在管道结果中看到这一点:

在此输入图像描述

可以在 Visual Studio 等中下载并分析该 .coverage 文件。

然而,我们真的希望能够直接在 Azure Pipelines 中看到结果。我们有一个 Typescript 项目来执行此操作。结果是这样的: 在此输入图像描述

遗憾的是,我根本不知道如何将其应用到 .net core 项目。

Q1:.net core 项目是否有可能获得相同的体验……以及如何获得?

此外,我们希望能够对用于计算代码覆盖率百分比的代码部分进行过滤。

问题 2:是否正确理解这是使用.runsettings文件完成的?

谢谢 :-)

/杰斯珀

作为参考,这是我的测试 .net core 解决方案中的完整 YAML 管道。解决方案超级简单——一个.net core类库和一个.net core测试类库

在此输入图像描述

pool:
  vmImage: vs2017-win2016

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    vstsFeed: 'd12c137f-dac4-4ea7-bc39-59bd2b784537' …
Run Code Online (Sandbox Code Playgroud)

code-coverage .net-core azure-pipelines azure-pipelines-yaml

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

Azure Build - 如何获取触发当前构建运行的用户详细信息并将该详细信息用于 Git 配置

作为针对D365 - Azure Devops - Git Repo - How to check a file History of a file that is storage in separatefolders in the Main Branch 的建议解决方案,我创建了一个 Master 文件夹,并将补丁文件手动复制到此备份存储库并提交在 ADO GIT 中跟踪历史记录。

目前使用我的 PAT,每次签到都会显示我的用户 ID。

我想获取触发构建的用户详细信息,并使用他们的姓名、邮件 ID 和 PAT,并将它们用于 GIT 配置、提交和推送命令。

AZ Pipelines Build 或 Runs 命令行帮助完成已完成的运行,我必须传递运行 ID。

az pipelines 运行 show --id 13134 --org $orgname --project $projectname

我们是否可以选择获取当前运行的用户详细信息?

git azure-devops azure-pipelines

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

如何使用chocolatey安装特定版本的Windows sdk?

我有一个 C++ 项目,其目标平台版本类型为 10.0.15063.0,目标平台为 Windows 10。

我尝试创建一个用于构建和发布工件的天蓝色管道,但我面临使用 choco 安装特定版本的 Windows sdk(即 10.0.15063.x)的问题。

尝试过的命令:

choco install windows-sdk-10.0 --version=10.0.15063
Run Code Online (Sandbox Code Playgroud)

我收到错误消息,指出在列出的源中找不到该包。有什么办法可以解决这个问题吗?

windows chocolatey azure-pipelines

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

Azure DevOps CI Pipeline - 如何动态签出分支?

设置:
我有一个数据库存储库和一个用于测试数据库存储库的单元测试存储库,这两个存储库共享 Azure DevOps 中的一个项目。我有一个 CI 管道,驻留在数据库项目中,在推送到远程跟踪分支时触发。当该目录中的任何分支被推送到时,触发器将运行 CI。

问题:
我还需要检查单元测试项目,以便我可以调用它。在创建任务等之前,我们不会知道主题分支的名称,如何动态捕获?

因此,工程师可以在 CI 支持的情况下在多个分支上工作,而不必担心在紧急情况下进行整理。

我读过这篇文章;https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/multi-repo-checkout?view=azure-devops#repository-details

我试过:

trigger:
- dev/a/*

steps:

- checkout: git://proj/repo-a@dev/a/*
- checkout: git://proj/repo-b@dev/a/*
Run Code Online (Sandbox Code Playgroud)

只是想看看是否有可能同时进行项目。

它会引发错误:

管道无效。无法使用 ref refs/heads/dev/a/ 获取 Azure Repos 上托管的存储库 repo-a 的最新源版本。无法使用 ref refs/heads/dev/a/ 获取 Azure Repos 上托管的存储库 repo-b 的最新源版本

我也尝试了上面没有通配符的方法,没有乐趣。另一点是我不想签出所有分支,而只想签出带有推送的分支。

当然这是可能的......

continuous-integration automation azure-devops azure-pipelines

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