Прочитать версию проекта в файле yaml из pom.xml в лазурных конвейерах - PullRequest
1 голос
/ 06 мая 2019

У меня есть pom.xml файл, который включает мою версию проекта, такую ​​как

 <version> 1.14.0 </version>

и у меня также есть файл YAML, который автоматически генерирует тег GitHub, когда тесты пройдены, и это так

- job: createTag
    dependsOn: ifBranchIsMaster
    condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')
    steps:
      - task: GitHubRelease@0
        displayName: ‘Create GitHub Release’
        inputs:
          gitHubConnection: $(GITHUB_CONNECTION)
          repositoryName: $(GITHUB_REPO)
          action: create
          tag: 1.14.0

и я хочу удалить из моего YAML-файла тег версии с жестким кодом и сразу прочитать его из pom.xml. Есть ли способ, которым это может случиться? Я пытаюсь свести к минимуму версию с жестким кодом до 1. Я хочу изменить его в 1 месте и меняй везде.

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Вы можете создать сценарий PowerShell, который читает переменную из файла pom.xml и устанавливает переменную конвейера.в tag: используйте эту переменную.

Например:

$filePath = "path/to/pom.xml"
$version = (Select-String -Path $filePath -Pattern "<version>").Line
$version = $version.Split(" ")[1]
Write-Host "##vso[task.setvariable variable=version]$version"

Другой вариант для чтения версии:

[xml]$pomXml = Get-Content $filePath
$version = $pomXml.project.version

В задаче GitHubRelease@используйте переменную:

tag: $(version)
0 голосов
/ 08 мая 2019

, поэтому я разобрался с сценарием, который решает мою проблему и читает <version>1.14.1</version> внутри всего pom.xml

это скрипт PowerShell

[xml]$pomXml = Get-Content .\pom.xml
# version
Write-Host $pomXml.project.version
$version=$pomXml.project.version
Write-Host "##vso[task.setvariable variable=version]$version"

, а также я предоставлю и скрипт bash на случай, если кто-то захочет

#!/usr/bin/env bash
version=$(grep version pom.xml | grep -v '<?xml' | grep '<version>'|head -n 1|awk '{print $1}'| cut -d'>' -f 2 | cut -d'<' -f 1)
echo "##vso[task.setvariable variable=version]$version"

Вот как я могу найти версию из pom.xml

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