0

我有一个运行模板的 yaml 脚本。我希望能够在启动服务之前运行脚本。这可能吗?

stages:
- stage: BuildandDeploy
  variables:
  - group: nonprod
  jobs:
    - template: my/templates/shared.yml@templates
      parameters:
        # Version Config
        sourcebranch_name: '$(Build.SourceBranchName)'

我试图在模板之前添加一个似乎不起作用的工作。

stages:
- stage: BuildandDeploy
  variables:
  - group: nonprod
  jobs:
    - script: 'my.exe'
      displayName:  Start My Exe
    - template: my/templates/shared.yml@templates
      parameters:
        # Version Config
        sourcebranch_name: '$(Build.SourceBranchName)'
4

1 回答 1

1

根据您的问题描述,您的模板应包含整个作业。如下所示:

jobs:
- job: Ubuntu
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - bash: echo "Hello Ubuntu"
  - bash: echo "Hello World"

当您的模板包含整个作业时,它只能作为作业替换。您不能在作业之前添加任务。

如果您想在运行模板之前运行任务,您有两种选择:

1.重写您的模板,使其成为任务集合而不是任务集合,如下所示。因此,您的管道 YAML 文件可能需要进行一些调整。此方法保留了您的工作的完整性,但可能会导致您的模板失去其原始含义。

steps:
- bash: echo "Hello Ubuntu"
- bash: echo "Hello World"

2.将模板前面要运行的任务作为单独的作业。此方法保留了模板的含义,但会分割您当前的工作。

于 2020-11-18T01:59:44.613 回答