Estudiante: Milton Angel Martinez Rodriguez
GitHub Actions
Es una herramienta de integración y entrega continua (CI/CD) que te permite automatizar
flujos de trabajo directamente en GitHub. Con GitHub Actions, puedes definir y ejecutar flujos
de trabajo personalizados en respuesta a eventos en tu repositorio, como la creación de una
rama, la apertura de un pull request, o la actualización de un push.
Además, GitHub Actions ofrece una amplia variedad de opciones para personalizar y
automatizar tus flujos de trabajo.
1. Definición de Flujos de Trabajo
Workflows: Definidos en archivos YAML dentro del directorio
.github/workflows de tu repositorio. Estos archivos especifican los eventos que
activan el flujo de trabajo, los Jobs y los steps a realizar.
2. Eventos
Push: Ejecuta el flujo de trabajo cuando se realiza un push a una rama
especifica.
Pull Request: Ejecuta el flujo de trabajo cuando se abre, actualiza o cierra un
pull request.
Issues: Ejecuta el flujo de trabajo en respuesta a eventos relacionados con
issues.
Schedule: Permite ejecutar el flujo de trabajo en horarios programados
utilizando la sintaxis de cron.
Release: Ejecuta el flujo de trabajo cuando se crea un nuevo despliegue.
Workflow Dispatch: Permite iniciar manualmente un flujo de trabajo desde la
interfaz de GitHub.
3. Jobs
Parallel and Sequential Execution: Los jobs pueden ejecutarse en paralelo o
en secuencia, dependiendo de como se configuren las dependencias entre
ellos.
Matrix Builds: Permite ejecutar un job en multiples configuaraciones, como
diferentes versiones de lenguajes o sistemas operativos, utilizando matrices.
4. Steps
Run Commands: Puedes ejecutar comandos directamente en la terminal del
runner.
Use Actions: Puedes utilizar acciones predefinidas de la GitHub Marketplace o
crear tus propias acciones. Estas acciones pueden ser scripts o contenedores
Docker.
5. Runners
GitHub-hosted Runners: GitHub proporciona runners preconfigurados con
diversos entornos de ejecución (Ubuntu, Windows, macOs).
Self-hosted Runners: Puedes configurar tus propias runners en tu
infraestructura para ejecutar flujos de trabajo.
6. Secrets and Environment Variables
Secrets: Permiten almacenar datos sensibles como tokens de API o
contraseñas de manera segura. Se pueden utilizar dentro de los flujos de
trabajo sin exponerlos en el código.
Environment Variables: Puedes definir variables de entorno que estarán
disponibles para los jobs y steps.
7. Artifacts
Uploading and Downloading: Puedes guardar y compartir archivos generados durante
el flujo de trabajo, como resultados de pruebas o archivos de construcción.
8. Caching
Cache Dependencies: Puedes almacenar en caché dependencias para acelerar los
tiempos de construcción y evitar descargar o instalar las mismas dependencias
repetidamente.
9. Notifications
Slack and Email: Puedes configurar notificaciones para que te informen sobre el
estado de tus flujos de trabajo.
10. Conditionals and Expressions
If Statements: Puedes definir condiciones para ejecutar steps o jobs solo si se cumplen
ciertos criterios.