creación de tareas personalizadas para team build y release management

23
Microsoft Summit 5 y 6 de octubre, 2016 #TechSum

Upload: luis-fraile

Post on 17-Feb-2017

484 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Creación de tareas personalizadas para Team Build y Release Management

Microsoft Summit5 y 6 de octubre, 2016

#TechSum

Page 2: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Creación de tareas para Team Build y RMLuis [email protected]@lfraile

Page 3: Creación de tareas personalizadas para Team Build y Release Management

Luis Fraile

Luis Fraile

[email protected]@lfraile

Page 4: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

1 Juego Deus EX

Cazando a 5 Speakers

1 Curso desarrollo

apps

Cazando a Javier SuárezSO

RTEA

MO

S S

ORT

EAM

OS

SO

RTEA

MO

S SO

RTEA

MO

S

http://bit.ly/plain-go

Page 5: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Intro

Page 6: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Nuevo Sistema de Build y Release ManagementBasado en un pipeline de tareasAgentes compartidosBuild y RM

X-PlatformMacOSJenkinsJava…

Plantillas predefinidasPropiasTFS

Entornos de Release100% basado en web

Page 7: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Modelo de extensibilidadExtensiones en Visual Studio MarketPlacehttps://marketplace.visualstudio.com/ GratuitasDe pago

Se integran en las diferentes partes de TFS/VSTSGestión de Work ItemsBuild & RMNuevos paneles y funcionalidades

Varios modos de desarrolloPowerShell (Build & RM) + PS1 SDKJscript + API Rest + NPM SDK + TypescriptNodeJS (Build & RM)

Page 8: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Primera regla de la extensibilidadSi no lo necesitas realmente no lo hagas

Page 9: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Extensiones Build & RM

Page 10: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Que vamos a necesitarUna cuenta de VSTS / TFS 2015 Update 3Visual Studio Code tfx-cliHerramienta multiplataforma instalada via NPM (npm install -g tfx-cli)

Referenciahttps://github.com/Microsoft/vsts-taskshttps://github.com/Microsoft/vsts-tasks/tree/master/Tasks/ShellScript

Page 11: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Estructura base de una tarea$ tfx build tasks create

Task.json

Fichero de definición

Icon.pngIcono para listados de

tareas

Sample.js

Ejemplo base NodeJS

Sample.ps1

Ejemplo base Powershell

Page 12: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Task.jsonInformación básica de la tareaIdAutorDescripción…

Parámetros de entradaPuntos de ejecuciónVersión

Page 13: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

PowershellSólo para WindowsSave-Module -Name VstsTaskSdk -Path .\SDK: https://github.com/Microsoft/vsts-task-lib/blob/master/powershell/Docs/Commands.md

Punto de ejecución Powershell3

Page 14: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

JavascriptEjecutadas bajo NodeJSnpm install vsts-task-lib –saveSDK para Javascript/typescrip

Punto de ejecución Node

Page 15: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

TypeScript

Aporta uso de await para las

tareas

Facilita el desarrollo (el

SDK está en TS)

También usa typings (librería

typescript)

Es lo recomendado

por Microsoft …

Es el mismo punto de

ejecución que Node

Page 16: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Gestión de mensajeshttps://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md

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

Uso en Node console.log(`##vso[task.logissue type=error;]${err}`);

Uso en Powershell Write-Host // Write-VstsTaskError

Page 17: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Resultado de la tareaWrite-VstsSetResult -Result FailedPowershelltoolRunner.setResult(toolRunner.TaskResult.Failed,'Failed restoring the packages');Node

Page 18: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Pruebas localesPowershell$env:INPUT_MYINPUT = [...]Import-Module .\ps_modules\VstsTaskSdkInvoke-VstsTaskScript -ScriptBlock { . .\MyTask.ps1 }Invoke-VstsTaskScript -ScriptBlock ([scriptblock]::Create('. .\build-dotnet.ps1')) (PS3)

Nodeexport INPUT_SAMPLESTRING="Hello World“ // set INPUT_SAMPLESTRING="Hello World"Node build-dotnet.js

Page 19: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

PublicaciónManualmente para tu propio VSTS/TFStfx build tasks upload

Creación de paquete para Marketplace1. Creación de publisher2. Generación local de paquete (tfx extension create --manifest-globs vss-

extension.json)3. Publicación en marketplace4. Compartir con cuentas VSTS5. Hacer pública6. Actualizaciones

Page 20: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Datos de la extensión

vss-extension.json

Datos generales

Autor Versión ObjetivoIcono para listados de extensiones

Ficheros

Contenidos de

extensiones

Puntos de contribució

n

Tareas

Page 21: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

Demos

Page 22: Creación de tareas personalizadas para Team Build y Release Management

#TechSum

http://aka.ms/MTS82

Page 23: Creación de tareas personalizadas para Team Build y Release Management

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.