标签: azure-pipelines

Azure Devops - 矩阵策略 - 有条件作业运行

*请忽略格式问题

trigger:
 - none
parameters:
- name: stg
displayName: "Environment Names"
type: string
 
pool:
  vmImage: ubuntu-latest
stages:
  - stage: stage1
    displayName: 'Stage C1'
    jobs:
    - job: jobabc
      strategy:
        maxParallel: 2
        matrix: 
            env_1:
                EnvironmentX: E1
                Browser: IE
            env_2:
                EnvironmentX: E2
                Browser: Firefox
            env_3:
                EnvironmentX: E3
                Browser: Chrome
    displayName: 'Job 1'
    condition: contains('${{parameters.stg}}', $(EnvironmentX))}}  
    steps: 
    - task: CmdLine@2
      displayName: 'My Task '
      inputs:
        script: 'echo Stage C1 $(Browser)' 
Run Code Online (Sandbox Code Playgroud)

我将stg参数传递为E1E3E4.

在 Matrix 中我定义了EnvironmentX其值可以是E1, E2, or E3 …

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

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

如何使 yaml 管道依赖在前一个循环的上下文中工作?

我希望能够处理数组..运行该作业多少次(与数组中的项目一样多) - 但我需要下一个作业依赖于最后一个作业。

如何将数组中最后一个元素的值放入下dependsOn:一个作业的参数中?有可能吗?如果不是,那么我如何使下一个作业取决于上一个作业最后一次运行的成功?

parameters:
- name: solutionName
  type: object
  default: ['entry1', 'entry2']

variables:
- group: 'Key Vault Test'
- name: Var1
  value: 'lol'


trigger:
- main

jobs:
- ${{each Solution in parameters.SolutionName}}:
  - job: Job_${{Solution}}
    displayName: ${{Solution}}
    pool:
      vmImage: ubuntu-latest
    steps: 
    - script: |
        echo $(Var1)
        echo ${{Solution}}
        echo ${{join(' ',parameters.SolutionName)}}

- job: Job_2
  dependsOn: HOW_DO_I_PUT_JOB_NAME_IF_I_DONT_KNOW_IT
  displayName: Job2
  pool:
    vmImage: ubuntu-latest
  steps:
  - script: |
      echo 'Second Job'
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines

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

Azure Devops Pipeline 多个矩阵选项的叉积

Azure DevOps 管道文档提供了一个用于matrix构建两个不同操作系统和版本组合的示例:

strategy:
  matrix:
    jdk10_linux:
      imageName: "ubuntu-latest"
      jdkVersion: "1.10"
    jdk11_windows:
      imageName: "windows-latest"
      jdkVersion: "1.11"
Run Code Online (Sandbox Code Playgroud)

这里

问题:有没有办法获得多组矩阵选项的叉积。举例来说,假设我想要这个:

strategy:
  matrix:
    jdk10_linux:
      imageName: "ubuntu-latest"
      jdkVersion: "1.10"
    jdk11_linux:
      imageName: "ubuntu-latest"
      jdkVersion: "1.11"
    jdk10_windows:
      imageName: "windows-latest"
      jdkVersion: "1.10"
    jdk11_windows:
      imageName: "windows-latest"
      jdkVersion: "1.11"
Run Code Online (Sandbox Code Playgroud)

除了复制并粘贴整个列表之外,是否有更干净/更简单的方法来执行此操作?

从逻辑上讲,我希望能够说更多类似的话:

imageList: ['windows-latest', 'ubuntu-latest']
jdkList: ['1.10', '1.11']
optionList: ['a','b','c']

strategy:
  matrix_combine_lists:
    imageName: imageList
    jdkVersion: jdkList
    someOption: optionList
Run Code Online (Sandbox Code Playgroud)

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

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

Azure DevOps 管道以哪个用户身份运行?

我们有 azure DevOps 管道来构建和部署各种项目。

最近,我们想使用“azureblog 文件复制”管道将一些文件复制到 Blob 存储。

这需要在 azure 中对存储帐户进行写访问。

我们的管理员说,无论谁手动运行管道,管道都会运行。如果这是真的,我们将不得不授予所有开发人员和用户对博客存储的读/写访问权限,这将是疯狂的。

我认为他是错的,管道作为特定的指定用户运行,无论它们是如何启动的。问题是,如何找出给定管道的该用户是什么?

“编辑管道”在顶部附近有一个安全选项卡,其中列出了“Azure Devops 组”的一部分,这些组可能是有能力运行管道的组。

但是用户定义的管道在哪里呢?

azure-devops azure-pipelines

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

模板yaml可以使用父yaml的参数吗?

我希望使用来自父级的参数,如下代码所示。但当运行管道时,结果却出乎意料。

我可以做什么来使用父级的参数?

# template.yml
- job: TestJob
  steps:
  - ${{ if parameters.isFromParent }}:  # What can I do to use the parameter from parent?
    - task:
      ....
Run Code Online (Sandbox Code Playgroud)
# parent.yml
parameters:
- name: isFromParent
  type: Boolean
- template: template.yml
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines

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

Azure DevOps Artifact Feed,来自 azure 管道的推送包出现错误 403

我面临许可问题。

我正在 Azure DevOps 中开发一个 yaml 管道,它使用同一项目下其他存储库中的模板。

这些模板非常简单。

  • dotnet 恢复 - 或 - npm install
  • dotnet 发布并将文件夹推送到通用包 feed -或者 - dotnet pack 并将 nupkg 推送到 nuget feed
parameters:
- name: jobName
  type: string
- name: projectPath
  type: string
- name: projectName
  type: string
- name: filesToDelete
  type: object

jobs:
- job:
  displayName: ${{ parameters.jobName }}
  steps:

  - task: DotNetCoreCLI@2
    displayName: Dotnet build
    inputs:
      command: 'build'
      projects: '${{ parameters.projectPath }}/${{ parameters.projectName }}.csproj'
      arguments: '-c Debug'

  - task: DotNetCoreCLI@2
    displayName: Dotnet pack …
Run Code Online (Sandbox Code Playgroud)

azure-devops azure-pipelines-build-task azure-pipelines azure-artifacts azure-pipelines-yaml

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

如何将构建定义作为VSTS中的一个步骤运行另一个构建定义

所以我有一个默认的发布构建定义,我希望有另一个与它同步并执行所有相同的步骤,但最后还有一个额外的步骤.

我可以将另一个构建定义作为另一个构建定义中的步骤之一吗?

这个问题适用于最新的Visual Studio Team Services.

tfs tfsbuild azure-devops azure-pipelines-build-task azure-pipelines

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

VSTS:在构建中执行条件任务

在VSTS中,我有一个GIT存储库和一个包含5个任务的构建定义。我已经在master分支上添加了一个分支策略,其中,当创建拉取请求作为签入策略的一部分时,构建将运行。当代码从功能分支合并到主分支时,我也运行与CI构建相同的构建。

现在,我需要确保构建作为Pull-Request的一部分运行,然后仅应执行前4个任务,而当同一构建作为CI(trigger)的一部分运行时,则应该执行所有5个任务。

我无法在VSTS中找到任何此类现成的选项来执行此操作。因此需要帮助。

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

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

如何在Azure DevOps构建管道中排除一个分支

在Azure DevOps中,可以定义生成管道,默认情况下,将代码推送到分支时将执行该管道

我希望管道为除一个分支之外的所有分支运行。配置

trigger:
  branches:
    include:
    - branchToInclude
    exclude:
    - branchToExclude
Run Code Online (Sandbox Code Playgroud)

当我推送到branchToInclude时有效。

但是,如果我删除了include部分,则当我按下branchToInclude时不会执行管道。

trigger:
  branches:
    exclude:
    - branchToExclude
Run Code Online (Sandbox Code Playgroud)

当我尝试保存文件时,不接受*而不是branchToInclude。有没有一种方法可以配置管道以执行除一个分支以外的所有分支?

triggers azure azure-devops azure-pipelines

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

在Yaml文件中转换可视生成管道

我正在使用Azure DevOps管道,并且正在使用可视设计器。

但是也有YAML文件。我想将Build管道导出到YAML文件中。使用此按钮似乎有可能像本Github问题(https://github.com/MicrosoftDocs/vsts-docs/issues/2504)中提到的那样View YAML

但是此按钮在我的项目中被禁用(我无法单击它):

在此处输入图片说明

我不知道如何启用它。预览功能New YAML pipeline creation experience已启用。我正在使用一些标记为的任务Preview。这可能是原因吗?

有人知道为什么禁用它以及如何启用它吗?

azure azure-devops azure-pipelines

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