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:

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

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=errorowarning(obligatorio)sourcepath= ubicación del archivo de origenlinenumber= número de líneacolumnnumber= número de columnacode= 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=SucceededLa tarea se ha realiza correctamente.SucceededWithIssuesLa tarea tuvo problemas. La compilación se completará como parcialmente correcta en el mejor de los casos.FailedLa 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 primariotype= 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=Datetimefinishtime=Datetimeprogress= porcentaje de finalizaciónstate=Unknown|Initialized|InProgress|Completedresult=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, unoauthParameterdedataParameter, ourl(obligatorio)key= key (obligatorio, a menosfield=urlque )
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/buildFilepath
##vso[artifact.associate type=filepath;artifactname=MyFileShareDrop]\\MyShare\MyDropLocationversioncontrol
##vso[artifact.associate type=versioncontrol;artifactname=MyTfvcPath]$/MyTeamProj/MyFoldergitref
##vso[artifact.associate type=gitref;artifactname=MyTag]refs/tags/MyGitTagtfvclabel
##vso[artifact.associate type=tfvclabel;artifactname=MyTag]MyTfvcLabelArtefacto 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