*请忽略格式问题
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 …
我希望能够处理数组..运行该作业多少次(与数组中的项目一样多) - 但我需要下一个作业依赖于最后一个作业。
如何将数组中最后一个元素的值放入下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 管道文档提供了一个用于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 DevOps 管道来构建和部署各种项目。
最近,我们想使用“azureblog 文件复制”管道将一些文件复制到 Blob 存储。
这需要在 azure 中对存储帐户进行写访问。
我们的管理员说,无论谁手动运行管道,管道都会运行。如果这是真的,我们将不得不授予所有开发人员和用户对博客存储的读/写访问权限,这将是疯狂的。
我认为他是错的,管道作为特定的指定用户运行,无论它们是如何启动的。问题是,如何找出给定管道的该用户是什么?
“编辑管道”在顶部附近有一个安全选项卡,其中列出了“Azure Devops 组”的一部分,这些组可能是有能力运行管道的组。
但是用户定义的管道在哪里呢?
我希望使用来自父级的参数,如下代码所示。但当运行管道时,结果却出乎意料。
我可以做什么来使用父级的参数?
# 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 中开发一个 yaml 管道,它使用同一项目下其他存储库中的模板。
这些模板非常简单。
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
所以我有一个默认的发布构建定义,我希望有另一个与它同步并执行所有相同的步骤,但最后还有一个额外的步骤.
我可以将另一个构建定义作为另一个构建定义中的步骤之一吗?
这个问题适用于最新的Visual Studio Team Services.
tfs tfsbuild azure-devops azure-pipelines-build-task azure-pipelines
在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
在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。有没有一种方法可以配置管道以执行除一个分支以外的所有分支?
我正在使用Azure DevOps管道,并且正在使用可视设计器。
但是也有YAML文件。我想将Build管道导出到YAML文件中。使用此按钮似乎有可能像本Github问题(https://github.com/MicrosoftDocs/vsts-docs/issues/2504)中提到的那样View YAML。
但是此按钮在我的项目中被禁用(我无法单击它):
我不知道如何启用它。预览功能New YAML pipeline creation experience已启用。我正在使用一些标记为的任务Preview。这可能是原因吗?
有人知道为什么禁用它以及如何启用它吗?
azure-devops ×10
azure-pipelines ×10
azure ×4
tfs ×2
azure-pipelines-release-pipeline ×1
tfsbuild ×1
triggers ×1