Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Un número de ejecución único o número de compilación identifica cada ejecución de una canalización o compilación de Azure Pipelines. En este artículo se explica la estructura de este número y cómo se puede personalizar para que sea más útil o significativo para el equipo.
Si no especifica un nombre de compilación en canalizaciones YAML, o deja el campo Nombre o Formato de número de compilación en blanco en canalizaciones clásicas, cada ejecución obtiene un entero único como su nombre. Los nombres de compilación pueden usar otros caracteres, tokens y variables. Puede personalizar los números de ejecución y compilación mediante patrones de nomenclatura, tokens especiales y variables predefinidas o definidas por el usuario.
Configuración del número de compilación
En canalizaciones clásicas, puede personalizar el formato de número de compilación en Opciones en la definición de canalización. En las canalizaciones YAML, puede personalizar el formato del número de ejecución utilizando la name propiedad en el nivel de canalización del archivo YAML. En las plantillas ni en las etapas, la propiedad name no está admitida.
En el ejemplo siguiente se establece un formato de número de ejecución personalizado que genera un número de compilación como MyProject_MyBuild_main_20240828.1.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)'
Número de ejecución
El valor predeterminado de un número de ejecución de Azure Pipelines es $(Date:yyyyMMdd).$(Rev:r). La $(Rev:r) variable de revisión solo funciona en un campo de número de compilación. Cuando se completa una compilación, si no cambia nada más en el número de compilación, el Rev valor entero aumenta en uno.
$(Rev:r) se restablece en 1 cuando cambia cualquier otra parte del número de compilación. Por ejemplo, si configura el formato de número de compilación como $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), el número de compilación se restablece cuando la fecha cambie.
Si el número de compilación anterior era MyBuild_20230621.1, el siguiente número de compilación es MyBuild_20230621.2. El primer número de compilación del día siguiente es MyBuild_20230622.1.
$(Rev:r) también se restablece a 1 si cambia la versión. Si el formato de compilación es 1.0.$(Rev:r) y el último número de compilación era 1.0.3, si cambia la versión a 1.1.$(Rev:r), el número de compilación siguiente es 1.1.1.
El siguiente formato de número de compilación genera el nombre Fabrikam_CIBuild_main_20240506.2 para la segunda ejecución el 6 de mayo de 2024.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
Los tokens de número de compilación se resuelven de la siguiente manera:
- Nombre del proyecto: Fabrikam
- Nombre de definición de compilación: CIBuild
- Rama: main
- Fecha: 6 de mayo de 2024
- Número de ejecución para ese día: 2
Ejecutar tokens de número
En la tabla siguiente se muestra cómo se resuelven los tokens de número de ejecución de procesos. Estos tokens solo se pueden usar para definir números de ejecución. No funcionan en ningún otro lugar de una canalización.
| Token | Valor de ejemplo | Notas |
|---|---|---|
$(Build.DefinitionName) |
CIBuild | Un nombre de compilación, que no puede contener caracteres de espacio en blanco o no válidos. |
$(Build.BuildId) |
752 | Un identificador interno inmutable, también denominado , Run IDque es único en la organización de Azure DevOps. |
$(Date:yyyyMMdd) |
20240506 | Formato de fecha. También puede especificar otros formatos de fecha, como $(Date:MMddyy). |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
Veintiuno | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | Posición en el número de ejecuciones ese día. Use $(Rev:r) para asegurarse de que todas las compilaciones completadas tengan un número único. |
$(Seconds) |
3 | |
$(SourceBranchName) |
principal | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
Importante
Si desea mostrar ceros de prefijo en el número de ejecución, puede agregar más caracteres r al token Rev. Por ejemplo, especifique $(Rev:rr) si desea que el número Rev comience por 01, 02, y así sucesivamente.
Sin embargo, si usa un relleno con ceros Rev como parte de un esquema de numeración de versiones, algunas tareas de canalización o herramientas populares, como los paquetes NuGet, quitan los ceros iniciales. Este comportamiento provoca un desajuste de números de versión en los artefactos que genera la compilación.
Expresiones en números de ejecución
Si utiliza una expresión para establecer el número de ejecución del proceso, no puede usar los tokens $(Build.BuildId), $(Build.BuildUri) o $(Build.BuildNumber), porque sus valores aún no están definidos en el momento en que se evalúan las expresiones de canalización.
Variables en números de proceso
Puede usar variables predefinidas y definidas por el usuario en el número de ejecución de su proceso. Por ejemplo, si define My.Variable, puede especificar el siguiente formato de número. Las cuatro primeras variables están predefinidas.
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Para obtener más información sobre las variables predefinidas, consulte Uso de variables predefinidas. Para obtener información sobre cómo definir variables de usuario, vea Definir variables.
Preguntas más frecuentes
¿Qué tamaño puede tener un número de ejecución y qué caracteres puedo usar?
Los números de ejecución pueden tener hasta 255 caracteres. No se pueden usar los caracteres ", /, \, :, <, >, ', |, ?, @ o *, y no se puede finalizar el número con ..
¿En qué zona horaria se expresan los valores de tiempo del número de compilación?
La zona horaria es UTC.
La zona horaria es la misma que el sistema operativo de la máquina que ejecuta el servidor de nivel de aplicación.
¿Cómo puedo establecer el número de compilación de manera dinámica con condiciones?
Puede usar variables como parte del número de ejecución. En el ejemplo siguiente, la variable why se establece como parte del número de ejecución y su valor cambia en función de Build.Reason.
variables:
- name: why
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: pr
${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
value: manual
${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
value: indivci
${{ else }}:
value: other
name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd).$(Rev:r)
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo '$(Build.BuildNumber)'
¿Cómo se puede hacer referencia a la variable del número de ejecución dentro de un script?
Puede hacer referencia al número de ejecución directamente como $(Build.BuildNumber) en los scripts o crear una variable personalizada que incluya el número. Por ejemplo:
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)