Azure Pull Request | Azure Devops - " Usted debe proporcionar un valor de la siguiente expresión '+' del operador."

0

Pregunta

Actualmente estoy ejecutando este archivo 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

Para asegurarse de que esto funciona bien, voy a tener que pasar por el comando siguiente en los comentarios de la nueva PR:

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

Al hacer esto, tengo el siguiente problema:

"Usted debe proporcionar un valor de la siguiente expresión '+' del operador."

¿Alguien sabe qué más puedo hacer para evitar este tipo de mensajes de error?

1

Mejor respuesta

-2

He resuelto mi problema mediante la adición de la siguiente plantilla en el interior de mi PR descripción:

Descripción Gracias por su contribución a la Bla Bla repo. Antes de la presentación de este RP, por favor asegúrese de que:

  • [ ] Fix
  • [ ] Característica
  • [ ] Grandes

Nota: Si a usted le gustaría tener una terminología diferente, usted tendrá que cambiar el regex parte. Como un ejemplo:

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

Al mismo tiempo, usted tendrá que hacer un cambio en el interior de las casillas de verificación que se añade en el interior de la Solicitud de Extracción para asegurarse de que coinciden.

Ahora, el script está funcionando. Si a usted le gustaría ver una guía para añadir semántica de control de versiones para su proyecto, usted tendrá que buscar en la guía del creador enlace: https://www.moderndata.ai/2021/10/automatic-semantic-versioning-in-azure-devops-with-release-notes/. Mira, la cuestión principal que he creado - $(Sistema.PullRequest.SourceBranch) no se han encontrado.

2021-11-24 20:07:00

Su original quest es un git commit de error. ¿Cómo responder a resolver el problema?
John Hanley

Agregar el comando git commit mensaje para SemVer scripts de Powershell tiene algunos regex que tendrá lugar en las casillas de verificación para asegurarse de que será capaz de declarar si mi Solicitud de Extracción será una solución, la Función o el Grande. Mediante la adición de la forma anterior en la PR-Comentarios resuelto el problema
Hvaandres

Esa es mi respuesta, he añadido la plantilla de mis comentarios dentro de mi PR, y elija la opción que necesito. Leer el guión, y verás que regex pide casillas de verificación, y si las agregas en el interior de su PR comentarios, usted será capaz de jugar con este script. El guión en sí no tiene nada de malo, y yo no lo entendía al principio, pero ahora he resuelto y voy a compartir la guía que he seguido
Hvaandres

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................