我已经创建了一个蔚蓝-管道. all,在这里我有不同的脚本部分,根据条件运行,每个脚本部分都有变量定义,我想创建一个公共部分,它可以托管所有脚本的变量。下面是yml文件,寻找将删除重复项的解决方案。
variables:
- group: spCreds
- group: toolCreds
steps:
- checkout: git://stack-deployment
- checkout: self
- script: |
set -x
export USE_SERVICE_PRINCIPAL=true
export APP_NAME=testing
export ARM_CLIENT_SECRET=$(ARM_CLIENT_SECRET)
export ARM_TENANT_ID=${ARM_TENANT_ID}
export ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID}
export ARM_CLIENT_ID=${ARM_CLIENT_ID}
export ARM_RESOURCE_GROUP_NAME=${ARM_RESOURCE_GROUP_NAME}
export ARM_STORAGE_ACCOUNT_NAME=${ARM_STORAGE_ACCOUNT_NAME}
export ARM_CONTAINER_NAME=${ARM_CONTAINER_NAME}
bash -x bt-ciaas-stack-deployment/scripts/deploy.sh
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))
displayName: 'deploy jenkins from develop branch'
- script: |
export APP_NAME=testing
export ARM_CLIENT_SECRET=$(ARM_CLIENT_SECRET)
export ARM_TENANT_ID=${ARM_TENANT_ID}
export ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID}
export ARM_CLIENT_ID=${ARM_CLIENT_ID}
export ARM_RESOURCE_GROUP_NAME=${ARM_RESOURCE_GROUP_NAME}
export ARM_STORAGE_ACCOUNT_NAME=${ARM_STORAGE_ACCOUNT_NAME}
export ARM_CONTAINER_NAME=${ARM_CONTAINER_NAME}
bash -x stack-deployment/scripts/deploy.sh
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/pull/'))
displayName: 'Deploy from pull request'
- script: |
export APP_NAME=testing
export ARM_CLIENT_SECRET=$(ARM_CLIENT_SECRET)
export ARM_TENANT_ID=${ARM_TENANT_ID}
export ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID}
export ARM_CLIENT_ID=${ARM_CLIENT_ID}
export ARM_RESOURCE_GROUP_NAME=${ARM_RESOURCE_GROUP_NAME}
export ARM_STORAGE_ACCOUNT_NAME=${ARM_STORAGE_ACCOUNT_NAME}
export ARM_CONTAINER_NAME=${ARM_CONTAINER_NAME}
bash -x stack-deployment/scripts/delete.sh
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/pull/'))
displayName: 'Delete'我希望删除所有重复的导出变量,并将它们保存在一个位置。
发布于 2020-12-17 07:45:19
如何重用Azure管道中的导出变量
我们可以尝试在一个具有组合条件的任务中导出重复变量:
or(eq(variables['Build.SourceBranch'], 'refs/heads/develop'), startsWith(variables['Build.SourceBranch'], 'refs/pull/'))测试脚本如下:
steps:
- checkout: git://stack-deployment
- checkout: self
- script: |
set -x
export USE_SERVICE_PRINCIPAL=true
bash -x bt-ciaas-stack-deployment/scripts/deploy.sh
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))
displayName: 'deploy jenkins from develop branch'
- script: |
export APP_NAME=testing
export ARM_CLIENT_SECRET=$(ARM_CLIENT_SECRET)
export ARM_TENANT_ID=${ARM_TENANT_ID}
export ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID}
export ARM_CLIENT_ID=${ARM_CLIENT_ID}
export ARM_RESOURCE_GROUP_NAME=${ARM_RESOURCE_GROUP_NAME}
export ARM_STORAGE_ACCOUNT_NAME=${ARM_STORAGE_ACCOUNT_NAME}
export ARM_CONTAINER_NAME=${ARM_CONTAINER_NAME}
bash -x stack-deployment/scripts/common.sh
or(eq(variables['Build.SourceBranch'], 'refs/heads/develop'), startsWith(variables['Build.SourceBranch'], 'refs/pull/'))
displayName: 'common'https://stackoverflow.com/questions/65322946
复制相似问题