Запрос на вытягивание Azure | Azure Devops - "Вы должны указать выражение значения после оператора"+"".

0

Вопрос

В настоящее время я запускаю этот файл yaml:

trigger:
- none
## notes 
pool:
  vmImage: ubuntu-latest

## Job to calculate semantic version
jobs:
  - job: CalculateVersion
    displayName: Semantic versioning
    
    steps:
      # Checkout with persist credentials
      - checkout: self
        persistCredentials: true

      # Install GitVersion
      - task: gitversion/setup@0
        displayName: Install GitVersion
        inputs:
          versionSpec: '5.x'

      # Retrieve Pull Request Description
      - task: PullRequestDescription@0
        name: RetrievePullRequestDescription
        displayName: Retrieve Pull Request description
        inputs:
          action: 'view'
          outputVariable: 'PullRequest.DescriptionContent'
          isOutput: true
          stripIdentifiers: false

      # Add git commit message that will be picked up by GitVersion ("+semver: patch/minor/major")
      # Depending on the Pull Request description, where the developer has marked the type of change
      - task: PowerShell@2
        displayName: Add git commit message for SemVer
        inputs:
          targetType: inline
          script: |
            Write-Host "Configuring git author info.." -ForegroundColor Cyan
          
            git config user.email "[email protected]"
            git config user.name "alan.haro"
            Write-Host "Doing git checkout..." -ForegroundColor Cyan
            git checkout -b $("$(System.PullRequest.SourceBranch)".replace('refs/heads/creating-git-tags', ''))
            Write-Host "Checking Pull Request description..." -ForegroundColor Cyan
            $PRdesc = "$(RetrievePullRequestDescription.PullRequest.DescriptionContent)"
            if ($PRdesc -match '(\[x\] \bFix\b)') {
              Write-Host "Adding git (empty) commit message to mark this branch as a 'patch' SemVer increment." -ForegroundColor Cyan
              git commit -a -m "+semver: patch [skip azurepipelines]" --allow-empty
            } elseif ($PRdesc -match '(\[x\] \bFeature\b)') {
              Write-Host "Adding git (empty) commit message to mark this branch as a 'minor' SemVer increment." -ForegroundColor Cyan
              git commit -a -m "+semver: minor [skip azurepipelines]" --allow-empty
            } elseif ($PRdesc -match '(\[x\] \bBig\b)') {
              Write-Host "Adding git (empty) commit message to mark this branch as a 'major' SemVer increment." -ForegroundColor Cyan
              git commit -a -m "+semver: major [skip azurepipelines]" --allow-empty
            } else {
              Write-Host "##vso[task.LogIssue type=error;]Please select the type of change in the Pull Request description, and Re-queue the validation." -ForegroundColor Cyan
              $PRdesc
              exit 1
            }
            Write-Host "Doing git push.." -ForegroundColor Cyan
            git push --set-upstream origin $("$(System.PullRequest.SourceBranch)".replace('refs/heads/', ''))
            Write-Host "Done." -ForegroundColor Cyan
          
      # Determine the semantic version & test test
      - task: gitversion/execute@0
        displayName: Determine SemVer

Чтобы убедиться, что это работает хорошо, мне придется передать следующую команду в комментариях к новому PR:

git commit -a -m "+'semver: minor [skip azurepipelines]'" --allow-empty

Сделав это, у меня возникнет следующая проблема:

"Вы должны указать выражение значения после оператора"+"".

Кто-нибудь знает, что еще я могу сделать, чтобы предотвратить сообщения об ошибках такого типа?

1

Лучший ответ

-2

Я решил свою проблему, добавив следующий шаблон в свое описание PR:

Описание Спасибо вам за ваш вклад в репо Бла-Бла. Перед отправкой этого PR, пожалуйста, убедитесь, что:

  • [ ] Исправить
  • [ ] Функция
  • [ ] Большой

Примечание: Если вы хотите использовать другую терминологию, вам придется изменить часть регулярного выражения. В качестве примера:

 if ($PRdesc -match '(\[x\] \**bFix**\b)')

В то же время вам придется внести изменения в флажки, которые вы добавили в запрос на извлечение, чтобы убедиться, что он будет соответствовать.

Теперь сценарий работает. Если вы хотите увидеть руководство по добавлению семантического управления версиями в свой проект, вам нужно будет посмотреть ссылку создателя руководства: https://www.moderndata.ai/2021/10/automatic-semantic-versioning-in-azure-devops-with-release-notes/. Посмотрите на главную проблему, которую я создал - $(Система.Вытяните запрос.Источник) не найден.

2021-11-24 20:07:00

Ваш первоначальный квест-это ошибка git-фиксации. Как ваш ответ решает проблему?
John Hanley

Добавьте сообщение о фиксации git для сценариев Powershell SemVer, в которых есть некоторое регулярное выражение, которое установит флажки, чтобы убедиться, что я смогу объявить, будет ли мой запрос на извлечение исправлением, функцией или Большим. Добавив форму выше в PR-комментарии, вы решили проблему
Hvaandres

Вот мой ответ, я добавил шаблон для своих комментариев в свой PR и выбрал нужный мне вариант. Прочитайте сценарий, и вы увидите, что регулярное выражение запрашивает у вас флажки, и если вы добавите их в свои PR-комментарии, вы сможете поиграть с этим сценарием. В самом сценарии нет ничего плохого, и я не понял этого в начале, но теперь я решил и делюсь руководством, которому следовал
Hvaandres

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................