使用 Azure DevOps Pipeline 跨阶段管理环境特定的属性文件在阶段上覆盖它们

问题描述 投票:0回答:1

我面临着在存储库的各个开发阶段维护属性文件的挑战。

在我们的遗留单体中,所有属性和配置文件都驻留在存储库中。

我们的存储库针对

development
staging
master
环境具有三个阶段,显然这些阶段的属性值各不相同。

例如,

application.properties
文件包含每个阶段的不同值:

开发

app.imagedir=E:\images
app.backupdir = E:\backup   
installdir=C:\Program Files\IBM\WebSphere\  

舞台

app.imagedir=D:\images
app.backupdir = D:\backup   
installdir=C:\IBM\WebSphere\    

大师

app.imagedir=C:\images
app.backupdir = C:\backup   
installdir=C:\IBM\WebSphere\    

我的目标是在所有阶段的存储库中维护统一的

application.properties
文件,但允许在管道运行时覆盖这些值。如何在 Azure DevOps 管道中实现此类行为?

我正在寻找最佳实践或方法来管理这些特定于环境的配置

azure-devops azure-pipelines azure-pipelines-build-task
1个回答
0
投票

如果您使用yaml管道,则可以使用管道中的参数来决定变量值。

示例 yaml:

trigger:
- none

pool:
  vmImage: windows-latest

parameters:
  - name: environment
    type: string
    displayName: environment value
    default: dev
    values:
      - dev
      - staging
      - master


variables:
  - name: app.imagedir
    ${{ if eq(parameters.environment, 'dev') }}:
      value: "E:\\images"
    ${{ if eq(parameters.environment, 'staging') }}:
      value: "D:\\images"
    ${{ if eq(parameters.environment, 'master') }}:
      value: "C:\\images"
  - name: app.backupdir
    ${{ if eq(parameters.environment, 'dev') }}:
      value: "E:\\backup"
    ${{ if eq(parameters.environment, 'staging') }}:
      value: "D:\\backup"
    ${{ if eq(parameters.environment, 'master') }}:
      value: "C:\\backup"
  - name: installdir
    ${{ if eq(parameters.environment, 'dev') }}:
      value: "C:\\Program Files\\IBM\\WebSphere\\"
    ${{ if eq(parameters.environment, 'staging') }}:
      value: "C:\\IBM\\WebSphere\\"
    ${{ if eq(parameters.environment, 'master') }}:
      value: "C:\\IBM\\WebSphere\\"
steps:
- script: echo This is ${{ parameters.environment }} environment. app.imagedir is $(app.imagedir). app.backupdir is $(app.backupdir). installdir is $(installdir).
  displayName: 'show ${{ parameters.environment }} environment variables'

如果您使用的是经典发布管道,您可以为不同阶段设置不同的变量值。

© www.soinside.com 2019 - 2024. All rights reserved.