如何将.yml作业脚本作为一个单独的任务制作成其他步骤的一部分?

时间:2019-05-23 13:46:13

标签: azure go azure-devops azure-pipelines azure-kubernetes

我是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模板:

enter image description here

  • 我当前的管道:

  • 克隆源存储库(来自Azure.com)

  • 构建docker映像
  • 将docker映像推送到我们的ACR

因此,在构建Docker容器之前,作为一个初步步骤,我想添加一个上面包含的YML脚本的“运行测试”脚本(显然要减去触发器)。

我遍历了所有Azure DevOps管道模板,并评估了任务组,Bash脚本或Azure CLI步骤,但是在YAML中都无法定义它们。

我相信一种选择是将上述YAML转换为bash脚本。
但是我想知道是否可以将YAML步骤作为管道的一部分,作为单独的专用步骤运行?

0 个答案:

没有答案