Переменные Azure Devop не обновляются

Я пытаюсь обновить переменные библиотеки конвейера Devops с помощью задачи Azure Devops через yaml. Это код, который у меня есть

- script: |
    echo "Updating variable group..."
    echo $(System.AccessToken) | az devops login --organization https://dev.azure.com/<org_name>
    echo "Logged in..."
    az devops project list -o jsonc
    az devops configure --defaults organization=https://dev.azure.com/<org_name>
    echo "Configured..."
    az pipelines variable-group list --top 6 --query-order Asc --output table --project "Test"
    echo "Listing success..."
    az pipelines variable-group variable update -p "Test" --group-id 2 --name version --value Test --output table
    echo "Update success..."

Однако этот код перестает выполняться после az devops configure --defaults organization=https://dev.azure.com/<org_name>, а другие команды echo не отображаются в журнале, и ни одна из переменных не обновляется. И стоит отметить отсутствие ошибок. Но если я запускаю те же команды с терминала своего ноутбука, все работает как положено. Я не уверен, что не так с этой командой. Любая помощь будет принята с благодарностью.


54
1

Ответ:

Решено

Попробуйте что-то вроде этого:

- bash: |
    az pipelines variable-group variable update \
      --group-id <VARIABLE_GROUP_ID> \
      --name <VARIABLE_NAME> \
      --value <VARIABLE_VALUE> \
      --organization 'https://dev.azure.com/<MY_ORG>/' \
      --project '<MY_PROJECT>' \
      --output table
  displayName: 'Update variable'
  env:
    AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)

Примечания:

  • Если az devops configure --defaults organization=... по какой-то причине не работает, вы можете использовать --organization или --org непосредственно в командах, которые хотите выполнить.
  • Убедитесь, что у $(System.AccessToken) достаточно разрешений для перечисления и обновления групп переменных.
  • Аутентификацию Azure DevOps CLI можно выполнить с помощью переменной среды AZURE_DEVOPS_EXT_PAT — см. Вход в систему с помощью личного токена доступа (PAT).