(Как) версии групп переменных в Azure DevOps? - PullRequest
0 голосов
/ 14 июля 2020

Я пытался найти некоторую информацию о том, как версируются группы переменных в Azure DevOps (или даже если они вообще версируются).

Моя «проблема» в том, что если у нас есть следующий сценарий:

У нас есть конвейер выпуска, который имеет связанную группу переменных с набором переменных, от которых зависит выпуск.

Во время нашего первого запуска конвейера выпуска (выпуск 1) мы развертываем наши приложения и используем переменные групп переменных для настройки приложения.

После нашего первого выпуска все работает нормально, проходит несколько недель, и мы решаем внести несколько изменений в наши группы переменных. например, мы можем изменить имя переменной или изменить значение. Теперь мы готовы к нашему следующему выпуску (выпуск 2).

Мы запускаем наш выпуск, но только для того, чтобы обнаружить, что что-то сломано, приложение больше не работает .. поэтому мы хотим быстро вернуться к предыдущий этап (для выпуска 1), поэтому мы просто "перевыпустим / повторно запустим" выпуск, который мы сделали для выпуска 1 ... однако ... поскольку мы изменили переменные групп переменных, это заставит нас сделать выпуск с недавно обновленными переменными, или Azure DevOps каким-то образом сохраняет / «снимает» стадию групп переменных с момента первого запуска выпуска?

Ответы [ 2 ]

1 голос
/ 21 июля 2020

Azure DevOps не поддерживает версии групп переменных, поскольку при изменении переменной создается новая ревизия самой группы. Однако, чтобы ответить на мой собственный вопрос ... он сохраняет значения и имена переменных между сборками и выпусками. Так, например, если переменная изменяется между выпуском 1 и выпуском 2, и мы повторно запускаем развертывание выпуска 1, переменные будут точно такими же, как и в первый раз, когда вы запустили выпуск 1 .. независимо от того, какие изменения были внесены в группу переменных или любые другие переменные выпуска / этапа / сборки в этом отношении.

1 голос
/ 14 июля 2020

Переменные группируют не версии (пока ...) в Azure DevOps. поэтому, если вы обновите группу переменных, вы сможете узнать, что было раньше. *

trigger: none

schedules:

- cron: "*/15 14-21 * * Mon-Fri"
  displayName: Every 15 min M-F 9am-4:45pm (UTC-05:00)
  branches:
    include:
    - master
  always: true

- cron: "0 22 * * Mon-Fri"
  displayName: M-F 5pm (UTC-05:00)
  branches:
    include:
    - master
  always: true

pool:
  vmImage: 'ubuntu-latest'

steps:

- checkout: self
  persistCredentials: true
  clean: true

# Updating the python version available on the linux agent
- task: UsePythonVersion@0
  inputs:
    versionSpec: '3.x'
    architecture: 'x64'

# Updating pip to latest
- script: python -m pip install --upgrade pip
  displayName: 'Upgrade pip'

# Updating to latest Azure CLI version.
- script: pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge
  displayName: 'Upgrade Azure CLI'

- script: az --version
  displayName: 'Show Azure CLI version'

- script: az extension add -n azure-devops
  displayName: 'Install Azure DevOps Extension'

- script: echo ${AZURE_DEVOPS_CLI_PAT} | az devops login
  env:
    AZURE_DEVOPS_CLI_PAT: $(System.AccessToken)
  displayName: 'Login Azure DevOps Extension'

- script: az devops configure --defaults organization=$(System.TeamFoundationCollectionUri) project="$(System.TeamProject)"
  displayName: 'Set default Azure DevOps organization and project'

- pwsh: |
    # Checkout the source branch
    git checkout $(Build.SourceBranchName)

    # Get all variable groups
    $groups = ConvertFrom-Json "$(az pipelines variable-group list)"
    $groups | foreach {
      $groupName = $_.name

      # Prepend VariableGroups folder name
      $filePath = Join-Path "VariableGroups" "$groupName.json"

      # Save the variable group to a file
      ConvertTo-Json $_ | New-Item $filePath -Force

      # Use the last modified user's name and email
      git config user.email $_.modifiedBy.uniqueName
      git config user.name $_.modifiedBy.displayName

      # Stage the file
      git add $filePath

      # Commit
      git commit -m "Variable group $groupName updates"
    }

    # Push all changes
    git push origin
  displayName: 'Save variable groups'

Подробное объяснение вам отлично здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...