azure devops - pipelines - ¿Cómo puedo copiar una compilación de Visual Studio Team Service a un nuevo proyecto?
msbuild rebuild (6)
Moveré un conjunto particular de compilaciones de un proyecto existente de Visual Studio Team Service a uno nuevo. Desafortunadamente, no puedo encontrar una manera de migrar las definiciones de compilación de un proyecto a otro. No parece haber una función de importación / exportación u otro mecanismo.
¿Hay alguna forma de moverlos sin volver a crear manualmente las compilaciones en el nuevo proyecto?
Ahora está disponible desde la interfaz de usuario web de Definiciones de compilación de VSTS:
.
En
En la exportación del proyecto Fuente (a través de ...) cada definición de compilación
En el proyecto Destino, en la vista de carpeta para las definiciones de compilación, Nuevo-> Importar uno y ajustar: Ruta del repositorio del grupo de agentes (que se revisará más adelante, mientras se guarda la importación)
Exportar la definición de compilación importada con éxito
- Edite las definiciones de compilación extraídas restantes y reemplace (con los valores de esa primera definición de compilación importada con éxito) los valores para Agrupación de agentes, Repositorio y Ruta
- Importe las compilaciones restantes Nombre de la revisión (elimine el sufijo -import) Revise la agrupación de agentes Revise la ruta dentro de la vista de la carpeta del proyecto Destino, al guardar la compilación importada
Hay una extensión de Exportar / Importar definición de compilación en Visual Studio Marketplace que puede usar ahora.
No hay forma de copiar o sincronizar una plantilla de definición de compilación vnext entre proyectos de equipo. La plantilla de definición de compilación es solo para el proyecto del equipo actual. Por lo tanto, debe crear una plantilla de definición de compilación para cada proyecto de equipo.
Y también ha habido una solicitud de función en UserVoice , puedes votar y monitorearlo
VSO build vnext: comparte las plantillas de build entre proyectos https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro
Sin embargo, se puede lograr utilizando la API. Aquí hay una herramienta simple que puedes usar. (Necesidad de estar en la misma colección de proyectos del equipo.)
Podrías hacer algo como lo siguiente:
$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials
$obj.project = $null
#TODO: Update all repository/source control info, too.
$json = ConvertTo-Json $obj -Depth 3
$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0"
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials
Lo esencial es: obtener la definición existente del proyecto de origen (projec1), borrar los vínculos del proyecto, establecer la nueva información del repositorio según sea necesario y enviar la nueva definición como POST (CREATE) al proyecto de destino (project2).
Puede utilizar las API REST para realizar esto. Hay ericksegaar.com/2015/10/16/… .
Muestra cómo obtener la respuesta JSON de una definición de compilación y nuevamente usar la misma referencia para crear una nueva en el proyecto que desee.