从 for 循环中调用 YAML 锚点的 bitbucket 管道

bitbucket pipeline calling YAML anchors from within a for loop

我有一个部署逻辑应用程序的 YAML 锚点。我希望管道在子目录中查找逻辑应用程序并循环遍历每个应用程序并进行部署。这是我的 deploy-logicapp 锚

  - step: &deploy-logicapp
      name: Deploy logic app
      script:
        - source environment.sh
        - pipe: microsoft/azure-arm-deploy:1.0.2
          variables:
              AZURE_APP_ID: $AZURE_CLIENT_ID
              AZURE_PASSWORD: $AZURE_SECRET
              AZURE_TENANT_ID: $AZURE_TENANT
              AZURE_LOCATION: $AZURE_LOCATION
              AZURE_RESOURCE_GROUP: $AZURE_RESOURCE_GROUP
              AZURE_DEPLOYMENT_TEMPLATE_FILE: 'logic-apps/$DIR/template.$DEPLOYMENT_SLOT.json'

所以在我的管道中,我循环遍历所有子目录并且这有效,它回显每个 $DIR

      - step:
          script:
            - cd logic-apps
            - for DIR in $(ls -l | grep '^d' | awk '{print }'); do echo $DIR ; done

我想做的是在这个循环中我想用 $DIR 环境变量调用我的 YAML 锚点。我尝试了多种方法。问题是 for 循环在 bash 里面而不是 YAML 所以我不能调用它。

任何指导将不胜感激。

事实证明,我需要从 azure 命令行执行所有操作。这是循环遍历所有目录并部署它们的 bash 脚本。

#!/bin/bash
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_SECRET --tenant $AZURE_TENANT
for DIR in $(ls -l | grep '^d' | awk '{print }'); do
    az deployment group create --resource-group $AZURE_RESOURCE_GROUP --template-file $DIR/template.$DEPLOYMENT_SLOT.json --name $DIR
done

下一步是只部署那些已经改变的:)