天蓝色管道yml中的嵌套循环

Nested loops in azure pipeline yml

我有两个参数列表,我想在 sql task 和 webapp deploy task on azure pipeline yml 中传递这些参数值。

parameters:
- name: db
  type: object
  default: [db1, db2, db3.......]

- name: apps
  type: object
  default: [app1, app2, app3......]

steps:
- ${{ each dblist in parameters.db && each applist in parameters.apps}}:
  - task: SqlAzureDacpacDeployment@1
    displayName: 'Azure SQL SqlTask ${{ db }}'
    inputs:
      azureSubscription: '$(Parameters.connectedServiceName)'
      ServerName: xxxx.xxxx.windows.net
      DatabaseName: ${{ dblist  }}
      SqlUsername: xxxxx
      SqlPassword: xxxxx
      deployType: SqlTask
      SqlFile: 'Table.sql'

  - task: AzureWebApp@1
    displayName: 'Azure Web App Deploy ${{ applist }}'
    continueOnError: true
    inputs:
      azureSubscription: '$(Parameters.connectedServiceName)'
      appType: webApp
      ResourceGroupName: $(group)
      appName: ${{ applist }}
      package: '$(build.artifactstagingdirectory)/**/*.zip'

当我 运行 这个管道时,我得到了错误,我想要 运行 的顺序可能不正确。

How can i run tasks like this loop: 
db1
app1
db2
app2
db3
app3...... and so on

如何解决这个问题?

所以你有一个 app + db 的数组,如果我理解的话,你想按顺序部署。 数组只是对象,所以你应该能够做类似的事情

parameters:
- name: configurations
  type: object
  default:
  - app: app1
    db: db1
  - app: app2
    db: db2

steps:
- ${{ each configuration in parameters.configurations }}:
  - pwsh: Write-Host Hello ${{ configuration.db }}
    displayName: Deploy database

  - pwsh: Write-Host Hello ${{ configuration.app }}
    displayName: Deploy webapp