Comandos de registro

Los comandos de registro son la forma en que las tareas y los scripts se comunican con el agente. Abarcan acciones como crear nuevas variables,marcar un paso como con errores y cargar artefactos. Los comandos de registro son útiles al solucionar problemas de una canalización.

Tipo Comandos:
Comandos de tarea LogIssue,SetProgress,LogDetail,SetVariable,SetEndpoint,AddAttachment,UploadSummary,UploadFile, PrependPath
Comandos de artefacto Asociar, Upload
Comandos de compilación UploadLog,UpdateBuildNumber,AddBuildTag
Comandos de versión UpdateReleaseName

Formato de comando de registro

El formato general de un comando de registro es:

##vso[area.action property1=value;property2=value;...]message

También hay algunos comandos de formato con una sintaxis ligeramente diferente:

##[command]message

Para invocar un comando de registro, resone el comando a través de la salida estándar.

#!/bin/bash
echo "##vso[task.setvariable variable=testvar;]testvalue"

Las rutas de acceso de archivo se deben dar como rutas de acceso absolutas: con raíz en una unidad en Windows o a partir / de en Linux y macOS.

Nota

Tenga en cuenta que no se admite el comando "set -x" que se ejecuta antes de registrar el comando en Linux y macOS.

Comandos de formato

Nota

Use el formato UTF-8 para los comandos de registro.

Estos comandos son mensajes al formateador de registro en Azure Pipelines. Marcan líneas de registro específicas como errores, advertencias, secciones contraíbles, y así sucesivamente.

Los comandos de formato son:

##[group]Beginning of a group
##[warning]Warning message
##[error]Error message
##[section]Start of a section
##[debug]Debug text
##[command]Command-line being run
##[endgroup]

Esos comandos se representarán en los registros de la siguiente forma:

Captura de pantalla de registros con opciones de formato personalizadas

Ese bloque de comandos también se puede contraer y tiene el siguiente aspecto:

Captura de pantalla de la sección contrayó de registros

Comandos de tarea

LogIssue: Registro de un error o advertencia

##vso[task.logissue]error/warning message

Uso

Registre un mensaje de error o advertencia en el registro de escala de tiempo de la tarea actual.

Propiedades

  • type = error o warning (obligatorio)
  • sourcepath = ubicación del archivo de origen
  • linenumber = número de línea
  • columnnumber = número de columna
  • code = código de error o advertencia

Ejemplo: Registro de un error

#!/bin/bash
echo "##vso[task.logissue type=error]Something went very wrong."
exit 1

Sugerencia

exit 1 es opcional, pero a menudo es un comando que se emitirá poco después de registrar un error. Si selecciona Opciones de control: Continuaren caso de error, se producirá una compilación parcialmente correcta en lugar de una compilación con errores.

Ejemplo: Registrar una advertencia sobre un lugar específico en un archivo

#!/bin/bash
echo "##vso[task.logissue type=warning;sourcepath=consoleapp/main.cs;linenumber=1;columnnumber=1;code=100;]Found something that could be a problem."

SetProgress: mostrar el porcentaje completado

##vso[task.setprogress]current operation

Uso

Establezca el progreso y la operación actual para la tarea actual.

Propiedades

  • value = porcentaje de finalización

Ejemplo

echo "Begin a lengthy process..."
for i in {0..100..10}
do
   sleep 1
   echo "##vso[task.setprogress value=$i;]Sample Progress Indicator"
done
echo "Lengthy process is complete."

Para ver su aspecto, guarde y en cola la compilación y, a continuación, vea la ejecución de la compilación. Observe que un indicador de progreso cambia cuando la tarea ejecuta este script.

Completar: Escala de tiempo de fin

##vso[task.complete]current operation

Uso

Finalice el registro de escala de tiempo de la tarea actual, establezca el resultado de la tarea y la operación actual. Cuando no se proporciona el resultado, establezca result en succeeded.

Propiedades

  • result =
    • Succeeded La tarea se ha realiza correctamente.
    • SucceededWithIssues La tarea tuvo problemas. La compilación se completará como parcialmente correcta en el mejor de los casos.
    • Failed La compilación se completará como con errores. (Si se selecciona la opción Opciones de control: Continuar en caso de error, la compilación se completará como parcialmente correcta en el mejor de los casos).

Ejemplo

##vso[task.complete result=Succeeded;]DONE

LogDetail: Creación o actualización de un registro de escala de tiempo para una tarea

##vso[task.logdetail]current operation

Uso

Crea y actualiza los registros de escala de tiempo. Esto lo usan principalmente los Azure Pipelines para informar sobre los pasos, los trabajos y las fases. Aunque los clientes pueden agregar entradas a la escala de tiempo, normalmente no se mostrarán en la interfaz de usuario.

La primera vez que vemos ##vso[task.detail] durante un paso, creamos un registro de "escala de tiempo de detalles" para el paso. Podemos crear y actualizar registros de escala de tiempo anidados en y idparentid .

Los autores de tareas deben recordar qué GUID usaron para cada registro de escala de tiempo. El sistema de registro realizará un seguimiento del GUID de cada registro de escala de tiempo, por lo que cualquier GUID nuevo dará como resultado un nuevo registro de escala de tiempo.

Propiedades

  • id = GUID del registro de escala de tiempo (obligatorio)
  • parentid = GUID de registro de escala de tiempo primario
  • type = Tipo de registro (obligatorio por primera vez, no se puede sobrescribir)
  • name = Nombre del registro (obligatorio por primera vez, no se puede sobrescribir)
  • order = orden del registro de escala de tiempo (obligatorio por primera vez, no se puede sobrescribir)
  • starttime = Datetime
  • finishtime = Datetime
  • progress = porcentaje de finalización
  • state = Unknown | Initialized | InProgress | Completed
  • result = Succeeded | SucceededWithIssues | Failed

Ejemplos

Cree un nuevo registro de escala de tiempo raíz:

##vso[task.logdetail id=new guid;name=project1;type=build;order=1]create new timeline record

Cree un nuevo registro de escala de tiempo anidado:

##vso[task.logdetail id=new guid;parentid=exist timeline record guid;name=project1;type=build;order=1]create new nested timeline record

Registro de escala de tiempo de existencia de actualización:

##vso[task.logdetail id=existing timeline record guid;progress=15;state=InProgress;]update timeline record

SetVariable: inicializar o modificar el valor de una variable

##vso[task.setvariable]value

Uso

Establece una variable en el servicio de variables de taskcontext. La primera tarea puede establecer una variable y las siguientes tareas pueden usar la variable . La variable se expone a las siguientes tareas como una variable de entorno.

Cuando se establece en , el valor de la variable se guardará como secreto y issecrettrue se enmascarará del registro. Las variables secretas no se pasan a las tareas como variables de entorno y, en su lugar, se deben pasar como entradas.

Consulte Establecimiento de variables en scripts para obtener más detalles.

Propiedades

  • variable = nombre de variable (obligatorio)
  • issecret = booleano (opcional, el valor predeterminado es false)
  • isoutput = booleano (opcional, el valor predeterminado es false)
  • isreadonly = booleano (opcional, el valor predeterminado es false)

Ejemplos

Establezca las variables:

- bash: |
    echo "##vso[task.setvariable variable=sauce;]crushed tomatoes"
    echo "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"
    echo "##vso[task.setvariable variable=outputSauce;isoutput=true]canned goods"
  name: SetVars

Lea las variables:

- bash: |
    echo "Non-secrets automatically mapped in, sauce is $SAUCE"
    echo "Secrets are not automatically mapped in, secretSauce is $SECRETSAUCE"
    echo "You can use macro replacement to get secrets, and they'll be masked in the log: $(secretSauce)"
    echo "Future jobs can also see $SETVARS_OUTPUTSAUCE"
    echo "Future jobs can also see $(SetVars.outputSauce)"

Salida de la consola:

Non-secrets automatically mapped in, sauce is crushed tomatoes
Secrets are not automatically mapped in, secretSauce is 
You can use macro replacement to get secrets, and they'll be masked in the log: ***
Future jobs can also see canned goods
Future jobs can also see canned goods

SetEndpoint: modificar un campo de conexión de servicio

##vso[task.setendpoint]value

Uso

Establezca un campo de conexión de servicio con el valor especificado. El valor actualizado se conservará en el punto de conexión para las tareas posteriores que se ejecuten dentro del mismo trabajo.

Propiedades

  • id = identificador de conexión de servicio (obligatorio)
  • field = tipo de campo, uno authParameter de dataParameter , o url (obligatorio)
  • key= key (obligatorio, a menos field = url que )

Ejemplos

##vso[task.setendpoint id=000-0000-0000;field=authParameter;key=AccessToken]testvalue
##vso[task.setendpoint id=000-0000-0000;field=dataParameter;key=userVariable]testvalue
##vso[task.setendpoint id=000-0000-0000;field=url]https://example.com/service

AddAttachment: Adjuntar un archivo a la compilación

##vso[task.addattachment]value

Uso

Upload y adjuntar datos adjuntos al registro de escala de tiempo actual. Estos archivos no están disponibles para su descarga con registros. Solo las extensiones pueden hacer referencia a ellas mediante los valores de tipo o nombre.

Propiedades

  • type = tipo de datos adjuntos (obligatorio)
  • name = nombre de datos adjuntos (obligatorio)

Ejemplo

##vso[task.addattachment type=myattachmenttype;name=myattachmentname;]c:\myattachment.txt

UploadSummary: Agregar contenido de Markdown al resumen de compilación

##vso[task.uploadsummary]local file path

Uso

Upload y adjunte markdown de resumen al registro de escala de tiempo actual. Este resumen se agregará al resumen de compilación o versión y no estará disponible para su descarga con registros. El resumen debe estar en formato UTF-8 o ASCII. El resumen aparecerá en una pestaña Extensiones.

Ejemplos

##vso[task.uploadsummary]c:\testsummary.md

Es un formato de mano corto para el comando

##vso[task.addattachment type=Distributedtask.Core.Summary;name=testsummaryname;]c:\testsummary.md

UploadFile: Upload un archivo que se puede descargar con registros de tareas

##vso[task.uploadfile]local file path

Uso

Upload archivo interesado por el usuario como información de registro adicional para el registro de escala de tiempo actual. El archivo estará disponible para su descarga junto con los registros de tareas.

Ejemplo

##vso[task.uploadfile]c:\additionalfile.log

PrependPath: Anteponer una ruta de acceso a la variable de entorno PATH

##vso[task.prependpath]local file path

Uso

Actualice la variable de entorno PATH anteponer a PATH. La variable de entorno actualizada se reflejará en las tareas posteriores.

Ejemplo

##vso[task.prependpath]c:\my\directory\path

Comandos de artefacto

Asociar: inicializar un artefacto

##vso[artifact.associate]artifact location

Uso

Cree un vínculo a un artefacto existente. La ubicación del artefacto debe ser una ruta de acceso del contenedor de archivos, una ruta de acceso de VC o una ruta de acceso de recurso compartido UNC.

Propiedades

  • artifactname = nombre del artefacto (obligatorio)
  • type = tipo de artefacto (obligatorio) container | filepath | versioncontrol | gitref | tfvclabel

Ejemplos

  • container

    ##vso[artifact.associate type=container;artifactname=MyServerDrop]#/1/build
    
  • Filepath

    ##vso[artifact.associate type=filepath;artifactname=MyFileShareDrop]\\MyShare\MyDropLocation
    
  • versioncontrol

    ##vso[artifact.associate type=versioncontrol;artifactname=MyTfvcPath]$/MyTeamProj/MyFolder
    
  • gitref

    ##vso[artifact.associate type=gitref;artifactname=MyTag]refs/tags/MyGitTag
    
  • tfvclabel

    ##vso[artifact.associate type=tfvclabel;artifactname=MyTag]MyTfvcLabel
    
  • Artefacto personalizado

    ##vso[artifact.associate artifactname=myDrop;artifacttype=myartifacttype]https://downloads.visualstudio.com/foo/bar/package.zip
    

Upload: Upload un artefacto

##vso[artifact.upload]local file path

Uso

Upload un archivo local en una carpeta contenedora de archivos y, opcionalmente, publique un artefacto como artifactname .

Propiedades

  • containerfolder = carpeta en la que se cargará el archivo, se creará la carpeta si es necesario.
  • artifactname = nombre del artefacto. (Requerido)

Ejemplo

##vso[artifact.upload containerfolder=testresult;artifactname=uploadedresult]c:\testresult.trx

Nota

La diferencia entre Artifact.associate y Artifact.upload es que el primero se puede usar para crear un vínculo a un artefacto existente, mientras que el último se puede usar para cargar o publicar un nuevo artefacto.

Comandos de compilación

UploadLog: Upload un registro

##vso[build.uploadlog]local file path

Uso

Upload usuario interesado en iniciar sesión en la carpeta " " del contenedor logs\tool de compilación.

Ejemplo

##vso[build.uploadlog]c:\msbuild.log

UpdateBuildNumber: invalidar el número de compilación generado automáticamente

##vso[build.updatebuildnumber]build number

Uso

Puede generar automáticamente un número de compilación a partir de los tokens que especifique en las opciones de canalización. Sin embargo, si desea usar su propia lógica para establecer el número de compilación, puede usar este comando de registro.

Ejemplo

##vso[build.updatebuildnumber]my-new-build-number

AddBuildTag: agregar una etiqueta a la compilación

##vso[build.addbuildtag]build tag

Uso

Agregue una etiqueta para la compilación actual.

Ejemplo

##vso[build.addbuildtag]Tag_UnitTestPassed

Comandos de versión

UpdateReleaseName: cambiar el nombre de la versión actual

##vso[release.updatereleasename]release name

Uso

Actualice el nombre de la versión en ejecución.

Nota

Se admite en Azure DevOps y Azure DevOps Server a partir de la versión 2020.

Ejemplo

##vso[release.updatereleasename]my-new-release-name