在Azure DevOps管道中,能否将模板作为stepList参数传递?

3

假设我有一个名为sonar.yml的模板,其中有一个名为build_tasks的参数,类型为stepList,如下所示:

#sonar.yml

parameters:
  - name: build_tasks
    type: stepList
    default: []

steps:

- task: SonarQubePrepare@4
  displayName: 'Prepare Sonar analysis'
  inputs:
    SonarQube: 'SonarQube'
    scannerMode: 'MSBuild'
    projectKey: 'Bacon.Api'

- ${{ parameters.build_tasks }}

- task: SonarQubeAnalyze@4
  displayName: 'Run Sonar analysis'  
  
- task: SonarQubePublish@4
  displayName: 'Publish Sonar analysis'
  inputs:
    pollingTimeoutSec: '300'

另外还有一个名为build.yml的模板:

#build.yml

steps:

- task: DotNetCoreCLI@2
  displayName: 'Restore'
  inputs:
    command: 'restore'
    projects: '**/*.sln'
    
- task: DotNetCoreCLI@2
  displayName: 'Build'
  inputs:
    command: 'build'
    arguments: '--no-restore'
    projects: '**/*.sln'

是否可以将build.yml作为build_tasks参数传递给sonar.yml

大概是这样:

#base.yml

jobs:

- job: sonar_analysis
  displayName: SonarQube
  pool:
    vmImage: 'ubuntu-latest'
  steps: 
    - template: sonar.yml
      parameters: 
        - build_tasks: build.yml
1个回答

3

事实证明,这是确实可能的。

我只是在参数上使用了错误的语法,我已经进行了更正,现在一切都如预期运行。

#base.yml

- job: sonar_analysis
  displayName: SonarQube
  pool:
    vmImage: 'ubuntu-latest'
  steps: 
    - template: sonar.yml
      parameters: 
        build_tasks: 
          - template: build.yml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接