Azure Devops:在运行时覆盖环境变量
Azure Devops: Overwrite Environment Variable at runtime
我正在尝试设置可从 Azure Devops 库中使用的环境变量,该变量默认设置为空值。这部分工作正常,但我希望开发团队能够临时覆盖该值。我不想将它手动添加到所有环境变量中,我想在我的剧本中建立一个条件来说明什么时候 var != "" 而不是什么时候: var != "$(rollback)"
这是我的配置:
name: $(Date:yyyyMMdd)$(Rev:.r)
trigger: none
pr: none
resources:
pipelines:
- pipeline: my-ui
source: my-ui-ci-dev
trigger: true
variables:
- group: Dev
jobs:
- job: my_cd
pool:
vmImage: "ubuntu-20.04"
container:
image: "myacr.azurecr.io/devops/services-build:$(services_build_tag_version)"
endpoint: "Docker Registry"
steps:
- task: Bash@3
displayName: "My Playbook"
env:
git_username: "$(git_username)"
git_password: "$(git_password)"
config_repo: "$(config_repo)"
service_principal_id: "$(service_principal_id)"
service_principal_secret: "$(service_principal_secret)"
subscription_id: "$(subscription_id)"
tenant_id: "$(tenant_id)"
rollback: "$(rollback)"
source_dir: "$(Build.SourcesDirectory)"
env_dir: "$(Agent.BuildDirectory)/env"
HELM_EXPERIMENTAL_OCI: 1
inputs:
targetType: "inline"
script: |
ansible-playbook cicd/ansible/cd.yaml -i "localhost, " -v
选择 运行 管道时,我希望开发人员只需转至 运行 > 添加变量 > 手动添加变量和值 > 运行 管道
然后在剧本中,如果未定义该值为“”,或者如果它显示为他们键入的值。关于如何使用 AZDO 执行此操作的任何建议?
您可以使用 run-time parameter
更轻松地做到这一点
parameters:
- name: rollback
type: string
default: ' '
variables:
- group: dev
- ${{ if ne(parameters.rollback, ' ') }}:
- name: rollback
value: ${{ parameters.rollback }}
这在实践中的工作方式是:
- 管道队列对话框自动包含一个 'rollback' 文本字段:
- 如果开发人员在回滚参数字段中键入一个值,
该值用于覆盖回滚变量
- 否则,使用变量组中的值。
注意需要给参数一个默认值单个space;否则管道不会让你把它留空。
我正在尝试设置可从 Azure Devops 库中使用的环境变量,该变量默认设置为空值。这部分工作正常,但我希望开发团队能够临时覆盖该值。我不想将它手动添加到所有环境变量中,我想在我的剧本中建立一个条件来说明什么时候 var != "" 而不是什么时候: var != "$(rollback)"
这是我的配置:
name: $(Date:yyyyMMdd)$(Rev:.r)
trigger: none
pr: none
resources:
pipelines:
- pipeline: my-ui
source: my-ui-ci-dev
trigger: true
variables:
- group: Dev
jobs:
- job: my_cd
pool:
vmImage: "ubuntu-20.04"
container:
image: "myacr.azurecr.io/devops/services-build:$(services_build_tag_version)"
endpoint: "Docker Registry"
steps:
- task: Bash@3
displayName: "My Playbook"
env:
git_username: "$(git_username)"
git_password: "$(git_password)"
config_repo: "$(config_repo)"
service_principal_id: "$(service_principal_id)"
service_principal_secret: "$(service_principal_secret)"
subscription_id: "$(subscription_id)"
tenant_id: "$(tenant_id)"
rollback: "$(rollback)"
source_dir: "$(Build.SourcesDirectory)"
env_dir: "$(Agent.BuildDirectory)/env"
HELM_EXPERIMENTAL_OCI: 1
inputs:
targetType: "inline"
script: |
ansible-playbook cicd/ansible/cd.yaml -i "localhost, " -v
选择 运行 管道时,我希望开发人员只需转至 运行 > 添加变量 > 手动添加变量和值 > 运行 管道
然后在剧本中,如果未定义该值为“”,或者如果它显示为他们键入的值。关于如何使用 AZDO 执行此操作的任何建议?
您可以使用 run-time parameter
更轻松地做到这一点parameters:
- name: rollback
type: string
default: ' '
variables:
- group: dev
- ${{ if ne(parameters.rollback, ' ') }}:
- name: rollback
value: ${{ parameters.rollback }}
这在实践中的工作方式是:
- 管道队列对话框自动包含一个 'rollback' 文本字段:
- 如果开发人员在回滚参数字段中键入一个值, 该值用于覆盖回滚变量
- 否则,使用变量组中的值。
注意需要给参数一个默认值单个space;否则管道不会让你把它留空。