Saltar al contenido

Azure DevOps, ¿cómo obtener un formato de número de compilación personalizado para las canalizaciones de compilación YAML?

Posteriormente a observar en diferentes repositorios y páginas al concluir hemos descubierto la respuesta que te mostramos ahora.

Solución:

Además de la respuesta elegida, también puede usar la siguiente función para aplicar un número de compilación personalizado

steps:
  - script: echo "##vso[build.updatebuildnumber]$(CustomValue)"

Como se documenta aquí: Comandos de registro de Azure DevOps

Encontré esto útil en mi situación, donde quería leer la versión semántica de mi binario y aplicarla al nombre de la compilación.

Editar 2020-02-12:

Para dar más detalles sobre cómo puede aprovechar la updatebuildnumber función, aquí hay un ejemplo de cómo extraer el SemVer de un archivo package.json en una API de NodeJS y usarlo para actualizar el número de compilación de Azure DevOps. Este ejemplo usa las compilaciones de estilo yaml en Azure DevOps.

Ejemplo:

buildNumberUpdtaed

Script yaml de DevOps…

- job: GetSemVer
  displayName: Get Semantic Version from Application
  timeoutInMinutes: 3
  continueOnError: false
  steps:
  - task: [email protected]
inputs: versionSpec: '12.13.0' displayName: Install Node continueOnError: false - bash: | APPSEMVER=$(node -pe "require('./package.json').version") echo "##vso[task.setvariable variable=version;isOutput=true]$APPSEMVER" name: App - job: CreateBuildVersion displayName: Create Build Identifier dependsOn: GetSemVer timeoutInMinutes: 2 continueOnError: false variables: appVersion: $[ dependencies.GetSemVer.outputs['App.version'] ] buildIncrement: $[counter(variables['appVersion'], 0)] # create a counter that is used to increment build run for same app version buildVersion: "$(appVersion)$(optionalBuildTag)-$(buildIncrement)" steps: - bash: echo "##vso[build.updatebuildnumber]$(buildVersion)" # Update build number in Pipeline UI

Primero en job: GetSemVerextraigo la versión semántica del paquete.json y creo una variable que se pasará al siguiente trabajo…

- bash: |
  APPSEMVER=$(node -pe "require('./package.json').version")
  echo "##vso[task.setvariable variable=version;isOutput=true]$APPSEMVER"
name: App

A continuación, en job: CreateBuildVersion Uso la versión de la aplicación de GetSemVer trabajo para crear una variable local, titulada appVersionun contador de producción y ejecución, titulado buildIncrement. El contador de compilación y ejecución se incrementa cada vez que se ejecuta una compilación para el mismo servidor de aplicaciones. El contador se incluirá en el número de compilación que proporcionaremos a Azure DevOps y ayuda a evitar conflictos de nombres si ejecutamos una compilación varias veces para la misma versión de la aplicación.

appVersion: $[ dependencies.GetSemVer.outputs['App.version'] ]
buildIncrement: $[counter(variables['appVersion'], 0)] # create a counter that is used to increment build run count for same app version

Luego, construyo un buildVersion variable, que se compone del semver de la aplicación, una etiqueta de compilación opcional (p. ej., “-alpha” para dev enviro) que se inyecta desde una variable de enviro en DevOps y el recuento de ejecución de compilación. por ejemplo, “1.1.6-alfa-0”

buildVersion: "$(appVersion)$(optionalBuildTag)-$(buildIncrement)"

Finalmente, actualizo el número de compilación en Azure llamando al build.updatebuildnumber funcionar con mi nuevo buildVersion variable.

- bash: echo "##vso[build.updatebuildnumber]$(buildVersion)" # Update build number in Pipeline UI

Nota: puedes organizar los pasos anteriores como quieras. Separamos obtener SemVer de construir buildVersion, porque usamos diferentes lenguajes y marcos que hacen que obtener SemVer sea diferente de una aplicación a otra. Entonces, ese paso para nosotros cambia a menudo. Sin embargo, podría hacer todos esos pasos en un “trabajo”.

Parece que “Algunas variables son insertadas automáticamente por el sistema”. y estas variables predefinidas se pueden encontrar en https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=vsts. en mi caso podría usar

name: $(BuildDefinitionName)-$(Rev:.r)
resources:
- repo: self
queue:
name: Hosted VS2017
variables:
testing: $(Build.BuildNumber)

steps:
- task: [email protected]
displayName: 'Publish Artifact: testing'
inputs:
PathtoPublish: Testing

ArtifactName: Testing

Como mi compilación YAML.

Si crees que te ha resultado de utilidad este artículo, nos gustaría que lo compartas con el resto juniors y nos ayudes a extender esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *