我是Azure DevOps和Go的新手。
我尝试将以下.yml Go测试执行作为独立的.yml步骤插入。这个Yaml可以作为独立管道正常工作,但我需要使其成为管道的YAML步骤。 (我只希望有一个管道,而我现有的管道不是不仅仅是 azure-pipelines.yml文件,而是由适用于Docker和ACR的Azure DevOps模板组成的)。 (每个步骤都有其自己的YAML,您只能查看而不可以对其进行编辑。即自动生成)
仅用于运行Go测试的YAML
trigger:
branches:
include:
- master
paths:
include:
- /cmd/*
pool:
vmImage: 'Ubuntu-16.04'
variables:
GOBIN: '$(GOPATH)/bin' # Go binaries path
GOROOT: '/usr/local/go1.12.1' # Go installation path
GOPATH: '$(system.defaultWorkingDirectory)/gopath' # Go workspace path
modulePath: '$(GOPATH)/src/azure.com/myproject' # Path to the module's code
steps:
- script: |
mkdir -p '$(GOBIN)'
mkdir -p '$(GOPATH)/pkg'
mkdir -p '$(modulePath)'
shopt -s extglob
mv !(gopath) '$(modulePath)'
cd gopath/src/azure.com/myproject/
displayName: 'Set up the Go workspace'
- script: |
go get -v -t -d ./...
workingDirectory: '$(modulePath)'
displayName: 'go get dependencies'
- script: go test -v ./...
workingDirectory: '$(modulePath)'
displayName: 'Run tests'
因此,当我将其作为单独的管道进行工作时,此方法起作用,但我找不到如何将其作为现有管道的单独的yml步骤插入该步骤。
我在Azure Devops中构建了一个Go管道,该管道具有单独的步骤,每个步骤都使用适当的Azureure Devops模板:
我当前的管道:
克隆源存储库(来自Azure.com)
因此,在构建Docker容器之前,作为一个初步步骤,我想添加一个上面包含的YML脚本的“运行测试”脚本(显然要减去触发器)。
我遍历了所有Azure DevOps管道模板,并评估了任务组,Bash脚本或Azure CLI步骤,但是在YAML中都无法定义它们。
我相信一种选择是将上述YAML转换为bash脚本。
但是我想知道是否可以将YAML步骤作为管道的一部分,作为单独的专用步骤运行?