SlideShare una empresa de Scribd logo
CI/CD for Xamarin
developers with GitHub
Actions and AppCenter
Luis Beltrán
@darkicebeam
Agenda
• ¿Qué es GitHub Actions?
• Workflows & Events
• Jobs
• Context & Expressions
• Secrets
• Referenciando acciones
• Xamarin & GitHub Actions
• Demo
• Precio
• Recursos
¿Qué es GitHub Actions?
GitHub Actions
GitHub Actions es una herramienta que permite la integración continua (CI) y una amplia gama de
automatización dentro de GitHub, de manera que puedes construir, probar e implementar tu código
directamente desde GitHub.
Similar a otros sistemas de CI como Travis CI y Circle CI, GitHub Actions utiliza el lenguaje de marcado
YAML.
Además de activarse por pull requests y commits, las acciones permiten responder a cualquier
evento de GitHub. Te permite activar ciertos workflows (flujos de trabajo) basados en:
• la creación de issues
• comentarios
• la incorporación de un nuevo miembro al repositorio
• cambios en el GitHub project board.
https://github.com/features/actions
GitHub Actions:
• Automatiza GitHub. Una acción es un conjunto
de instrucciones que te permiten automatizar
procesos de GitHub.
• Es desencadenado por eventos. Las acciones se
ejecutan como resultado de un evento de GitHub
(hacer un push, crear un issue, hacer pull, etc. se
puede ejecutar una automatización basada en
dichos eventos).
• Está integrado por completo en GitHub. Las
acciones están integradas y se ejecutan dentro
de los servidores de GitHub, por lo que no se
require de una plataforma distinta de CI/CD para
realizar tareas simples o complejas.
Implementa en
• AWS
• Azure
• Netlify
• etc
Publica artefactos
• npm
• Maven Central
• etc
Cualquier lenguaje
• Node .js
• Python
• Java
• Ruby
• PHP
• Go
• Rust
• .NET
• … y más!
Workflows & Events
Workflows
Las acciones son construidas creando uno o más archivos de workflow.
Workflows son procesos personalizados y automatizados que puedes establecer en tu repositorio para construir,
probar, empaquetar, liberar o implementar cualquier proyecto de código en GitHub.
Son multiplataforma. Se ejecutan en Linux, macOS, Windows y contenedores en equipos hospedados por GitHub,
llamados “runners”, aunque también puedes hospedar tus runners para ejecutar workflows en tus propios
equipos.
Puedes crear matrices de workflows
para ejecución simultánea en varias
plataformas.
Workflows
Para crear un workflow:
• Genera un archivo con extensión .yml en la ruta .github/workflows (si lo haces desde el portal seleccionando
Actions, automáticamente se genera la ruta)
• Por supuesto, el contenido del archivo debe estar en formato YAML.
• Puedes crear un workflow desde cero o basarte en una plantilla (template).
Puedes tener hasta 20 workflows por repositorio.
Cada workflow puede tener uno o más jobs, y cada job puede estar ligado a un evento o ventana de tiempo
especificada en el workflow.
Tipos de eventos
• Workflows: Los más comunes (push, pull_request, fork,
etc) que se relacionan con cambios en el repositorio.
• Webhooks: GitHub realizará una acción cuando ocurra
un evento de tipo webhook, como cuando alguien marca
tu repositorio con una estrella o cuando una página de
wiki es creada/editada.
https://docs.github.com/es/actions/reference/events-that-trigger-workflows
Tipos de eventos
• Programados: Permite definir cuando o con qué frecuencia un
evento se realizará por medio de una sintaxis cron (ejemplo, 15
3 * * 1-5 significa 3:15 am de lunes a viernes).
• Manuales: Son eventos desencadenados bajo demanda que
utilizan el evento workflow_dispatch, incluso se pueden
desencadenar más flujos y crear eventos personalizados
mediante el evento repository_dispatch.
https://docs.github.com/es/actions/reference/events-that-trigger-workflows
Especificadores
• Sencillo o múltiple: Puedes ejecutar un workflow
basado en un solo evento o tener una lista de
eventos que desencadenan el workflow (por
ejemplo, que se desencadene cuando ocurra un
push o un pull_request).
• Tipos: Algunos eventos admiten condiciones a ser
evaluadas cuando el evento ocurre, por ejemplo
solo desencadenar las acciones si ocurre un
pull_request que está siendo cerrado.
• Ejecución: Cuando un workflow se ejecuta, una o
más acciones son resueltas (ejecutan dependencias).
Si una acción falla, no se ejecutan las demás
acciones subsecuentes.
Jobs
Jobs
Aunque solo puedes ejecutar 20 workflows por repositorio, puedes
incluir uno o más jobs en cada workflow.
En un workflow, cada job es identificado por un ID label.
El cual debe ser un nombre único, comenzar por letra o guión bajo y
solo puede contener caracteres alfanuméricos, guión o guión bajo.
Ejecución de jobs:
• Se ejecutan en paralelo a menos que se indique lo contrario (por
ejemplo, se puede pedir a un job que espere a que otro finalice por
medio del atributo needs).
• Se puede indicar que un job se ejecute en distintas máquinas o en
un arreglo de equipos por medio del atributo run-os.
• ubuntu-latest, ubuntu-18.04, ubuntu-16.04
• windows-latest, windows-2019, windows-2016
• macOS-latest, macOS-10.14
runs
Especifica qué comando ejecutar en el contenedor Docker
args
Especifica los parámetros a adjuntar en el comando run
env
Permite configurar variables de entorno en los contenedores y que estarán
disponibles en cada job. Si deseas utilizar variables de entorno en más de
un job, debes colocarlas en el mismo nivel que el objeto jobs.
Opciones de un Job
needs
Especifica dependencias, encadena acciones para formar un pipeline.
if
El job solo se ejecutará si se cumplen ciertas condiciones
steps
Especifica la lista de tareas que realizará el job
Opciones de un Job
Context & Expressions
Contexts
github
La información más importante acerca de tu repositorio está almacenada
dentro de un objeto github
job, steps
También es possible acceder a información sobre los jobs actuales y los
pasos que puedes utilizar en cada job
secrets
Un contexto útil para acceder a información almacenada en GitHub que no
puede ser vista por otros.
strategy, matrix, runner
Son contextos poco utilizados, pero que incluyen el acceso a:
• Los parámetros de estrategia configurados (fail-fast, job-index, job-
total y max-parallel)
• Los parámetros de matriz configurada para el job actual (os, node)
• Información sobre el runner que está realizando el job actual.
Expressions
Los jobs tienen una sintaxis especial de expresiones, las cuales utilizan el
signo $ seguido de una expresión contenida entre {{ }}.
La expresión puede contener todo tipo de elementos, incluyendo
literales, operadores y funciones.
https://docs.github.com/es/actions/reference/context-and-expression-syntax-for-github-actions
Secrets
Secrets
GitHub permite inyectar secretos como variables de entorno.
Settings > Secrets
Se crean por medio de la interfaz web accediendo a las settings del proyecto.
Escribe una vez
Se almacenan encriptados (no contraseñas de texto plano) en el repositorio.
Se pueden almacenar hasta 100 secretos en tus repositorios y deben tener un nombre único.
No pueden ser impresos.
Una vez escrito, no se puede ver su contenido por razones de seguridad.
Xamarin & GitHub Actions
Demo
Precio
https://docs.github.com/es/github/setting-up-and-managing-
billing-and-payments-on-github/about-billing-for-github-
actions
Si tu uso de cuenta sobrepasa los límites y habías configurado un límite de gastos mayor a $0, pagarás:
• $0.25 USD por GB de almacenamiento por mes
• y una tasa por minuto de uso dependiendo en el sistema operativo que utilice el ejecutor hospedado en GitHub.
• GitHub redondea hacia arriba los minutos que utiliza cada job.
Recursos
Para aprender más…
GitHub Actions https://github.com/features/actions
Documentación de GitHub Actions https://docs.github.com/es/actions
Sintaxis https://docs.github.com/es/actions/reference/workflow-syntax-for-github-actions
Colección de GitHub Actions https://github.com/actions
Awesome Actions https://github.com/sdras/awesome-actions
Ejecuta GitHub Actions localmente con act https://github.com/nektos/act
Marketplace de GitHub Actions https://github.com/marketplace?type=actions
GitHub Actions Advent Calendar
https://edwardthomson.com/blog/github_actions_advent_calendar.html
Q & A
¡Muchas gracias por tu
atención!
Luis Beltrán
Tomás Bata University in Zlín
Tecnológico Nacional de México en Celaya
About Me:
https://about.me/luis-beltran

Más contenido relacionado

Similar a GitHub Actions Monkeyconf 2021.pptx

Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
NSCoder Mexico
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
Angel Jesse Morales Karam
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
Aprende Git
 
Documentacion Proyecto Final
Documentacion Proyecto FinalDocumentacion Proyecto Final
Documentacion Proyecto Final
MoisesAlvarez38
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Francisco Javier Toscano Lopez
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
Paradigma Digital
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
nscoder_mad
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
Daniel Cruz
 
Taller GitHub
Taller GitHubTaller GitHub
Taller GitHub
Roberto Rosa
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
Valentin Choquehuanca
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
José Moreno
 
Flujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontend
Leonidas Esteban González
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
Amazon Web Services LATAM
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
Manuel Pérez
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
Juan Victor Minaya León
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
Javier Novoa Cataño
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
carlossanchezvillena
 
visual basic
visual basicvisual basic
visual basic
Jesus104
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
Nelson Manuel Ordaz Yglesias
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
Mario Pérez Esteso
 

Similar a GitHub Actions Monkeyconf 2021.pptx (20)

Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Documentacion Proyecto Final
Documentacion Proyecto FinalDocumentacion Proyecto Final
Documentacion Proyecto Final
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Taller GitHub
Taller GitHubTaller GitHub
Taller GitHub
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Flujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontend
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
 
Python Gae django
Python Gae djangoPython Gae django
Python Gae django
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
visual basic
visual basicvisual basic
visual basic
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 

Más de icebeam7

Sustainable AI con Azure Machine Learning.pptx
Sustainable AI con Azure Machine Learning.pptxSustainable AI con Azure Machine Learning.pptx
Sustainable AI con Azure Machine Learning.pptx
icebeam7
 
CIITEC Fundamentos de Deep Learning.pptx
CIITEC  Fundamentos de Deep Learning.pptxCIITEC  Fundamentos de Deep Learning.pptx
CIITEC Fundamentos de Deep Learning.pptx
icebeam7
 
Dockerize your ML Models Data Science Summit.pptx
Dockerize your ML Models Data Science Summit.pptxDockerize your ML Models Data Science Summit.pptx
Dockerize your ML Models Data Science Summit.pptx
icebeam7
 
Comunidad AI Azure Cognitive Services Bring AI to your applications in 3 ste...
Comunidad AI  Azure Cognitive Services Bring AI to your applications in 3 ste...Comunidad AI  Azure Cognitive Services Bring AI to your applications in 3 ste...
Comunidad AI Azure Cognitive Services Bring AI to your applications in 3 ste...
icebeam7
 
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptxFestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
icebeam7
 
Keynote NET MAUI.pptx
Keynote NET MAUI.pptxKeynote NET MAUI.pptx
Keynote NET MAUI.pptx
icebeam7
 
Que hay en el Taller de Santa Ayudando a Santa con IA .pptx
Que hay en el Taller de Santa Ayudando a Santa con IA .pptxQue hay en el Taller de Santa Ayudando a Santa con IA .pptx
Que hay en el Taller de Santa Ayudando a Santa con IA .pptx
icebeam7
 
DTS Azure anomaly detector.pptx
DTS Azure anomaly detector.pptxDTS Azure anomaly detector.pptx
DTS Azure anomaly detector.pptx
icebeam7
 
Implementacion portable de modelos de Machine Learning con Docker.pptx
Implementacion portable de modelos de Machine Learning con Docker.pptxImplementacion portable de modelos de Machine Learning con Docker.pptx
Implementacion portable de modelos de Machine Learning con Docker.pptx
icebeam7
 
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
icebeam7
 
01 GAIB Pune 2022 Session Rock Paper Scissors.pptx
01 GAIB Pune 2022 Session Rock Paper  Scissors.pptx01 GAIB Pune 2022 Session Rock Paper  Scissors.pptx
01 GAIB Pune 2022 Session Rock Paper Scissors.pptx
icebeam7
 
04 GlobalAI Speaker Latam Biometria de voz Reconocimiento por voz en nuestr...
04 GlobalAI Speaker Latam  Biometria de voz  Reconocimiento por voz en nuestr...04 GlobalAI Speaker Latam  Biometria de voz  Reconocimiento por voz en nuestr...
04 GlobalAI Speaker Latam Biometria de voz Reconocimiento por voz en nuestr...
icebeam7
 
Cosmos DB and Azure Functions A serverless database processing.pptx
Cosmos DB and Azure Functions  A serverless database processing.pptxCosmos DB and Azure Functions  A serverless database processing.pptx
Cosmos DB and Azure Functions A serverless database processing.pptx
icebeam7
 
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
icebeam7
 
MVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptxMVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptx
icebeam7
 
Programa tu Pandemia 2 Azure Video Indexer.pptx
Programa tu Pandemia 2 Azure Video Indexer.pptxPrograma tu Pandemia 2 Azure Video Indexer.pptx
Programa tu Pandemia 2 Azure Video Indexer.pptx
icebeam7
 
Cumbre Virtual Juguemos Piedra Papel Tijeras con ML NET.pptx
Cumbre Virtual  Juguemos Piedra  Papel Tijeras con ML NET.pptxCumbre Virtual  Juguemos Piedra  Papel Tijeras con ML NET.pptx
Cumbre Virtual Juguemos Piedra Papel Tijeras con ML NET.pptx
icebeam7
 

Más de icebeam7 (17)

Sustainable AI con Azure Machine Learning.pptx
Sustainable AI con Azure Machine Learning.pptxSustainable AI con Azure Machine Learning.pptx
Sustainable AI con Azure Machine Learning.pptx
 
CIITEC Fundamentos de Deep Learning.pptx
CIITEC  Fundamentos de Deep Learning.pptxCIITEC  Fundamentos de Deep Learning.pptx
CIITEC Fundamentos de Deep Learning.pptx
 
Dockerize your ML Models Data Science Summit.pptx
Dockerize your ML Models Data Science Summit.pptxDockerize your ML Models Data Science Summit.pptx
Dockerize your ML Models Data Science Summit.pptx
 
Comunidad AI Azure Cognitive Services Bring AI to your applications in 3 ste...
Comunidad AI  Azure Cognitive Services Bring AI to your applications in 3 ste...Comunidad AI  Azure Cognitive Services Bring AI to your applications in 3 ste...
Comunidad AI Azure Cognitive Services Bring AI to your applications in 3 ste...
 
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptxFestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
FestiveTechCalendar2021 Drawing Xmas controls Xamarin.pptx
 
Keynote NET MAUI.pptx
Keynote NET MAUI.pptxKeynote NET MAUI.pptx
Keynote NET MAUI.pptx
 
Que hay en el Taller de Santa Ayudando a Santa con IA .pptx
Que hay en el Taller de Santa Ayudando a Santa con IA .pptxQue hay en el Taller de Santa Ayudando a Santa con IA .pptx
Que hay en el Taller de Santa Ayudando a Santa con IA .pptx
 
DTS Azure anomaly detector.pptx
DTS Azure anomaly detector.pptxDTS Azure anomaly detector.pptx
DTS Azure anomaly detector.pptx
 
Implementacion portable de modelos de Machine Learning con Docker.pptx
Implementacion portable de modelos de Machine Learning con Docker.pptxImplementacion portable de modelos de Machine Learning con Docker.pptx
Implementacion portable de modelos de Machine Learning con Docker.pptx
 
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
02 Global AI Bootcamp 2022 Sofia Voice biometry Recognizing speakers in our a...
 
01 GAIB Pune 2022 Session Rock Paper Scissors.pptx
01 GAIB Pune 2022 Session Rock Paper  Scissors.pptx01 GAIB Pune 2022 Session Rock Paper  Scissors.pptx
01 GAIB Pune 2022 Session Rock Paper Scissors.pptx
 
04 GlobalAI Speaker Latam Biometria de voz Reconocimiento por voz en nuestr...
04 GlobalAI Speaker Latam  Biometria de voz  Reconocimiento por voz en nuestr...04 GlobalAI Speaker Latam  Biometria de voz  Reconocimiento por voz en nuestr...
04 GlobalAI Speaker Latam Biometria de voz Reconocimiento por voz en nuestr...
 
Cosmos DB and Azure Functions A serverless database processing.pptx
Cosmos DB and Azure Functions  A serverless database processing.pptxCosmos DB and Azure Functions  A serverless database processing.pptx
Cosmos DB and Azure Functions A serverless database processing.pptx
 
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
Build Stuff 2021 Azure Video Indexer Advanced data extraction from video and ...
 
MVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptxMVVM vs MVU en NET MAUI.pptx
MVVM vs MVU en NET MAUI.pptx
 
Programa tu Pandemia 2 Azure Video Indexer.pptx
Programa tu Pandemia 2 Azure Video Indexer.pptxPrograma tu Pandemia 2 Azure Video Indexer.pptx
Programa tu Pandemia 2 Azure Video Indexer.pptx
 
Cumbre Virtual Juguemos Piedra Papel Tijeras con ML NET.pptx
Cumbre Virtual  Juguemos Piedra  Papel Tijeras con ML NET.pptxCumbre Virtual  Juguemos Piedra  Papel Tijeras con ML NET.pptx
Cumbre Virtual Juguemos Piedra Papel Tijeras con ML NET.pptx
 

Último

computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
alejandromanuelve
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
NicandroMartinez2
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
NajwaNimri1
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 

Último (20)

computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Refrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y ForzadoRefrigeradores Samsung Modo Test y Forzado
Refrigeradores Samsung Modo Test y Forzado
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Actividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdfActividad Conceptos básicos de programación.pdf
Actividad Conceptos básicos de programación.pdf
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 

GitHub Actions Monkeyconf 2021.pptx

  • 1. CI/CD for Xamarin developers with GitHub Actions and AppCenter Luis Beltrán @darkicebeam
  • 2. Agenda • ¿Qué es GitHub Actions? • Workflows & Events • Jobs • Context & Expressions • Secrets • Referenciando acciones • Xamarin & GitHub Actions • Demo • Precio • Recursos
  • 3. ¿Qué es GitHub Actions?
  • 4. GitHub Actions GitHub Actions es una herramienta que permite la integración continua (CI) y una amplia gama de automatización dentro de GitHub, de manera que puedes construir, probar e implementar tu código directamente desde GitHub. Similar a otros sistemas de CI como Travis CI y Circle CI, GitHub Actions utiliza el lenguaje de marcado YAML. Además de activarse por pull requests y commits, las acciones permiten responder a cualquier evento de GitHub. Te permite activar ciertos workflows (flujos de trabajo) basados en: • la creación de issues • comentarios • la incorporación de un nuevo miembro al repositorio • cambios en el GitHub project board. https://github.com/features/actions
  • 5.
  • 6. GitHub Actions: • Automatiza GitHub. Una acción es un conjunto de instrucciones que te permiten automatizar procesos de GitHub. • Es desencadenado por eventos. Las acciones se ejecutan como resultado de un evento de GitHub (hacer un push, crear un issue, hacer pull, etc. se puede ejecutar una automatización basada en dichos eventos). • Está integrado por completo en GitHub. Las acciones están integradas y se ejecutan dentro de los servidores de GitHub, por lo que no se require de una plataforma distinta de CI/CD para realizar tareas simples o complejas. Implementa en • AWS • Azure • Netlify • etc Publica artefactos • npm • Maven Central • etc Cualquier lenguaje • Node .js • Python • Java • Ruby • PHP • Go • Rust • .NET • … y más!
  • 8. Workflows Las acciones son construidas creando uno o más archivos de workflow. Workflows son procesos personalizados y automatizados que puedes establecer en tu repositorio para construir, probar, empaquetar, liberar o implementar cualquier proyecto de código en GitHub. Son multiplataforma. Se ejecutan en Linux, macOS, Windows y contenedores en equipos hospedados por GitHub, llamados “runners”, aunque también puedes hospedar tus runners para ejecutar workflows en tus propios equipos. Puedes crear matrices de workflows para ejecución simultánea en varias plataformas.
  • 9. Workflows Para crear un workflow: • Genera un archivo con extensión .yml en la ruta .github/workflows (si lo haces desde el portal seleccionando Actions, automáticamente se genera la ruta) • Por supuesto, el contenido del archivo debe estar en formato YAML. • Puedes crear un workflow desde cero o basarte en una plantilla (template). Puedes tener hasta 20 workflows por repositorio. Cada workflow puede tener uno o más jobs, y cada job puede estar ligado a un evento o ventana de tiempo especificada en el workflow.
  • 10.
  • 11.
  • 12. Tipos de eventos • Workflows: Los más comunes (push, pull_request, fork, etc) que se relacionan con cambios en el repositorio. • Webhooks: GitHub realizará una acción cuando ocurra un evento de tipo webhook, como cuando alguien marca tu repositorio con una estrella o cuando una página de wiki es creada/editada. https://docs.github.com/es/actions/reference/events-that-trigger-workflows
  • 13. Tipos de eventos • Programados: Permite definir cuando o con qué frecuencia un evento se realizará por medio de una sintaxis cron (ejemplo, 15 3 * * 1-5 significa 3:15 am de lunes a viernes). • Manuales: Son eventos desencadenados bajo demanda que utilizan el evento workflow_dispatch, incluso se pueden desencadenar más flujos y crear eventos personalizados mediante el evento repository_dispatch. https://docs.github.com/es/actions/reference/events-that-trigger-workflows
  • 14. Especificadores • Sencillo o múltiple: Puedes ejecutar un workflow basado en un solo evento o tener una lista de eventos que desencadenan el workflow (por ejemplo, que se desencadene cuando ocurra un push o un pull_request). • Tipos: Algunos eventos admiten condiciones a ser evaluadas cuando el evento ocurre, por ejemplo solo desencadenar las acciones si ocurre un pull_request que está siendo cerrado. • Ejecución: Cuando un workflow se ejecuta, una o más acciones son resueltas (ejecutan dependencias). Si una acción falla, no se ejecutan las demás acciones subsecuentes.
  • 15. Jobs
  • 16. Jobs Aunque solo puedes ejecutar 20 workflows por repositorio, puedes incluir uno o más jobs en cada workflow. En un workflow, cada job es identificado por un ID label. El cual debe ser un nombre único, comenzar por letra o guión bajo y solo puede contener caracteres alfanuméricos, guión o guión bajo. Ejecución de jobs: • Se ejecutan en paralelo a menos que se indique lo contrario (por ejemplo, se puede pedir a un job que espere a que otro finalice por medio del atributo needs). • Se puede indicar que un job se ejecute en distintas máquinas o en un arreglo de equipos por medio del atributo run-os. • ubuntu-latest, ubuntu-18.04, ubuntu-16.04 • windows-latest, windows-2019, windows-2016 • macOS-latest, macOS-10.14
  • 17. runs Especifica qué comando ejecutar en el contenedor Docker args Especifica los parámetros a adjuntar en el comando run env Permite configurar variables de entorno en los contenedores y que estarán disponibles en cada job. Si deseas utilizar variables de entorno en más de un job, debes colocarlas en el mismo nivel que el objeto jobs. Opciones de un Job needs Especifica dependencias, encadena acciones para formar un pipeline.
  • 18. if El job solo se ejecutará si se cumplen ciertas condiciones steps Especifica la lista de tareas que realizará el job Opciones de un Job
  • 20. Contexts github La información más importante acerca de tu repositorio está almacenada dentro de un objeto github job, steps También es possible acceder a información sobre los jobs actuales y los pasos que puedes utilizar en cada job secrets Un contexto útil para acceder a información almacenada en GitHub que no puede ser vista por otros. strategy, matrix, runner Son contextos poco utilizados, pero que incluyen el acceso a: • Los parámetros de estrategia configurados (fail-fast, job-index, job- total y max-parallel) • Los parámetros de matriz configurada para el job actual (os, node) • Información sobre el runner que está realizando el job actual.
  • 21. Expressions Los jobs tienen una sintaxis especial de expresiones, las cuales utilizan el signo $ seguido de una expresión contenida entre {{ }}. La expresión puede contener todo tipo de elementos, incluyendo literales, operadores y funciones. https://docs.github.com/es/actions/reference/context-and-expression-syntax-for-github-actions
  • 23. Secrets GitHub permite inyectar secretos como variables de entorno. Settings > Secrets Se crean por medio de la interfaz web accediendo a las settings del proyecto. Escribe una vez Se almacenan encriptados (no contraseñas de texto plano) en el repositorio. Se pueden almacenar hasta 100 secretos en tus repositorios y deben tener un nombre único. No pueden ser impresos. Una vez escrito, no se puede ver su contenido por razones de seguridad.
  • 24.
  • 25. Xamarin & GitHub Actions Demo
  • 28. Si tu uso de cuenta sobrepasa los límites y habías configurado un límite de gastos mayor a $0, pagarás: • $0.25 USD por GB de almacenamiento por mes • y una tasa por minuto de uso dependiendo en el sistema operativo que utilice el ejecutor hospedado en GitHub. • GitHub redondea hacia arriba los minutos que utiliza cada job.
  • 30. Para aprender más… GitHub Actions https://github.com/features/actions Documentación de GitHub Actions https://docs.github.com/es/actions Sintaxis https://docs.github.com/es/actions/reference/workflow-syntax-for-github-actions Colección de GitHub Actions https://github.com/actions Awesome Actions https://github.com/sdras/awesome-actions Ejecuta GitHub Actions localmente con act https://github.com/nektos/act Marketplace de GitHub Actions https://github.com/marketplace?type=actions GitHub Actions Advent Calendar https://edwardthomson.com/blog/github_actions_advent_calendar.html
  • 31. Q & A
  • 32. ¡Muchas gracias por tu atención! Luis Beltrán Tomás Bata University in Zlín Tecnológico Nacional de México en Celaya About Me: https://about.me/luis-beltran

Notas del editor

  1. GitHub Actions help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues. You can write individual tasks, called actions, and combine them to create a custom workflow.  Allow to implement custom logic on GitHub Fully integrated, no external app required Very flexible
  2. GitHub Actions viene con un fuerte nivel de integración con GitHub, eliminando el requisito de un proveedor adicional para CI. Desde una perspectiva empresarial, es una respuesta clara a GitLab y su oferta de CI, así como a Azure DevOps. GitHub Actions fue lanzado en version beta en GitHub Universe 2018, mientras que un año después se le incorporó funcionalidad de CI/CD. En GitHub Universe 2019, GitHub Actions fue puesto en General Availability.
  3. GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, and GitHub One. GitHub Actions is not available for private repositories owned by accounts using legacy per-repository plans.
  4. YAML is a recursive acronym, so it stands for YAML Ain't Markup Language. It's like a JSON where whitespace is used instead of punctuation. It's meant to be more human readable.
  5. Minute [0,59] Hour [0,23] Day of the month [1,31] Month of the year [1,12] Day of the week ([0,6] with 0=Sunday)
  6. Minute [0,59] Hour [0,23] Day of the month [1,31] Month of the year [1,12] Day of the week ([0,6] with 0=Sunday)