Azure DevOps YAML
Azure DevOps YAML
Azure DevOps YAML
No más cajitas
Luis Fraile
Luis Fraile
CTO b!Play – DevOps Consultant Plain Concepts
Working to make the best promotional platform with digital
rewards at b!Play.
@lfraile
lfraile@plainconcepts.com
lfraile@bhubplay.com
Que vamos a ver 1. Azure Pipelines ¿qué son?
4. Estructura básica
5. YAML para CI
6. YAML para CD
#HashtagEvento 3
Azure Pipelines
Cloud-hosted pipelines for Linux, Windows and
macOS, with unlimited minutes for open source
Any language, any platform, any cloud
Build, test, and deploy Node.js, Python, Java, PHP, Ruby,
C/C++, .NET, Android, and iOS apps. Run in parallel on
Linux, macOS, and Windows. Deploy to Azure, AWS, GCP
or on-premises
Extensible
Explore and implement a wide range of community-built
build, test, and deployment tasks, along with hundreds of
extensions from Slack to SonarCloud. Support for YAML,
reporting and more
Github integration
Ensure fast continuous integration/continuous delivery (CI/CD)
pipelines for every open source project. Get unlimited build
minutes for all open source projects with up to 10 free parallel
jobs across Linux, macOS and Windows
https://azure.com/pipelines
Flujo básico
Publicación
Instalación Ejecución artefactos
Obtener Despliegue n
herramientas tareas necesarios
fuentes entornos
adicionales compilación (app,
plantillas,…)
Fundamentos de pipelines
Pipeline Stage A
Agente Triggers Variables Job 1
Step 1.1
Step 1.2
...
Job 2
Jobs Tareas Recursos Step 2.1
Step 2.2
...
Stage B
Analíticas ...
YAML: YAML Ain't Markup Language
Mejoras
• Versionado en el repositorio
• Reutilización
• Plantillas
Actualmente (28 septiembre) en release solo para CI. Preview para CD
Es el camino a seguir
Agentes Build (y release)
• Son los que se encargan de ejecutar los trabajos
• Definen Capabilities
• Varias opciones Hosted:
– Visual Studio 2019 Preview on Windows Server 2019 (windows-2019)
– Visual Studio 2017 on Windows Server 2016 (vs2017-win2016)
– Visual Studio 2015 on Windows Server 2012R2 (vs2015-win2012r2)
– Windows Server 1803 (win1803) - for running Windows containers
– macOS X Mojave 10.14 (macOS-10.14)
– macOS X High Sierra 10.13 (macOS-10.13)
– Ubuntu 16.04 (ubuntu-16.04)
Agentes self-hosted
• Agentes que instalamos y mantenemos nosotros
• Ajustados a nuestras propias necesidades
– Red
– Software
– Configuración
14
Variables predefinidas
• Variables internas del propio sistema
• Proporcionan información acerca del pipeline y su ejecución
– P.ej.: Build.SourcesDirectory
• Se pueden usar en las tareas y scripts
– $(nombre_variable)
#####################################
• Varios niveles de definición: # template definition
parameters:
workDir: ‘’
– Jobs steps:
- task: Npm@1
inputs:
– Steps command: 'install'
workingDir: ‘${{ parameters.workDir }}’
Recursos externos
Repositorios Contenedore
externos s
(plantillas) • Tests
• compose
Ejemplo YAML
trigger: packageType: 'sdk'
branches: version: '3.0.100-rc1-014190'
include: includePreviewVersions: true
- master
paths: - task: DotNetCoreCLI@2
include: displayName: 'dotnet restore'
- src/* inputs:
- tests/* command: restore
pool: projects: '**/Esquio.sln’
name: Hosted Ubuntu 1604
- task: DotNetCoreCLI@2
variables: displayName: 'dotnet build'
solution: '**/*.sln' inputs:
buildPlatform: 'Any CPU' command: build
buildConfiguration: 'Release’ arguments: '--configuration $
(buildConfiguration) --no-restore'
steps: projects: '**/Esquio.sln'
- task: UseDotNet@2
displayName: 'install dotnet sdk'
inputs:
http://bit.ly/yaml_pipelines
¿Y mis cajitas existentes?
• Es posible migrar Builds existentes
manualmente.
• En todos los pasos de las
definiciones visuales botón yaml
• Nos proporciona una ayuda base
para migrar
– Los jobs
– Las tareas
– Parámetros
Analíticas
Gestión de resultados
Let’s Build it up
Despliegues
Desplegando
Anatomía general despliegues
Origen de
Disparador Stages de 1 a n
artefactos
Políticas de
Pprogramada CD Builds Repos Release gates Jobs (y pasos)
aprobación
27
Preview de YAML en CD
• Realmente es una preview del nuevo UI (el YAML de CI/CD está activado)
• Nuevos conceptos YAML:
– Stages
– Environment
– Deployment (en vez de job)
• Añade vistas
– Pipelines
– Environments
Let’s YAML
¡GRACIAS!
@lfraile
lfraile@plainconcepts.com
lfraile@bhubplay.com