【问题标题】:bitbucket pipeline calling YAML anchors from within a for loop从 for 循环中调用 YAML 锚点的 bitbucket 管道
【发布时间】:2021-07-20 11:33:41
【问题描述】:

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

  - 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 $9}'); do echo $DIR ; done

我想做的是在这个循环中我想用 $DIR 环境变量调用我的 YAML 锚。我已经尝试了很多方法。问题是 for 循环在 bash 内部,而不是 YAML,所以我不能调用它。

任何指导将不胜感激。

【问题讨论】:

    标签: azure yaml bitbucket-pipelines


    【解决方案1】:

    事实证明,我需要从 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 $9}'); do
        az deployment group create --resource-group $AZURE_RESOURCE_GROUP --template-file $DIR/template.$DEPLOYMENT_SLOT.json --name $DIR
    done
    

    接下来是只部署那些已经改变的:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多