Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/luhan-git/hello-word
https://github.com/luhan-git/hello-word
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/luhan-git/hello-word
- Owner: luhan-git
- License: cc-by-4.0
- Created: 2024-12-13T06:05:10.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-12-13T06:05:53.000Z (about 1 month ago)
- Last Synced: 2024-12-13T06:20:35.211Z (about 1 month ago)
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Curso Básico de GitHub Actions
_Aprende los conceptos básicos para crear tu primer flujo de CI/CD para tus proyectos con GitHub Actions_
Bienvenido
¡Bienvenido al Curso Básico de GitHub Actions de Platzi! en este curso aprenderás a realizar flujos de Integración y Despliegue Continúo (CI/CD) para tus proyectos personales, así como automatizar cualquier proceso que que te ayude a impulsar tu flujo de trabajo :rocket:.
- **¿Para quíen es este curso?**: Desarrolladores backend, frontend y Full Stack; DevOps; SREs, Estudiantes, Líderes de equipo, cualquier usuario de GitHub.
- **¿Qué aprenderás?**: Aprenderás a automatizar los procesos de compilación, pruebas y despliegue de sus proyectos.
- **¿Qué construirás?**: Una serie de flujos de trabajo que usen los principales conceptos detrás de GitHub Actions (Jobs, Steps, Actions, Variables, Expresiones, entre otros).
- **Prerequisitos**: Conocimientos básicos sobre Git y GitHub (realizar commits y push; crear pull requests e issues; agregar etiquetas).
- **Duración**: Este curso tendrá 5 pasos y lo podrás terminar en menos de 2 horas.## ¿Cómo iniciar el curso?
1. Haz click derecho en **Start course** y abre el enlace en una nueva pestaña.
[![start-course](https://user-images.githubusercontent.com/1221423/218596841-0645fe1a-4aaf-4f51-9ab3-8aa2d3fdd487.svg)](https://github.com/platzi/curso-github-actions/generate)
2. En la nueva pestaña, llena los campos para crear un nuevo repositorio.
- En owner, elige tu cuenta personal o la de tu organización.
- Es recomendado dejar el repositorio como público ya que los privados consumen [minutos que pueden ser cobrados](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions).
![Create a new repository](https://user-images.githubusercontent.com/1221423/218594143-e60462b6-9f2a-4fa3-80de-063ac5429aab.png)
3. Después de que el nuevo repositorio ha sido creado, espera por cerca de 20 segundos; luego, recarga la página. Sigue los pasos que aparezcan en el README del repositorio.Paso 1: Crea tu primer workflow file
_¡Bienvenido al "Curso Básico de GitHub Actions"! :wave:_
Primero, aprenderemos los conceptos básicos de GitHub Actions
**¿Qué es GitHub Actions?**: Es una plataforma de integración y despliegue continuo (CI/CD) que permite automatizar procesos de compilación, pruebas y despliegue.
**¿Qué es un Workflow?**: Es un proceso automatizado configurable que ejecutará uno o más jobs. Se define como un archivo YAML en el directorio .github/workflows de tu repositorio y se ejecutará cuando lo active un evento.
**¿Qué es un Event?**: Actividad específica en un repositorio, la cual activa una ejecución de un workflow.
**¿Qué es un Job?**: Conjunto de tareas (steps) en un workflow que se ejecutan en el mismo runner.
**¿Qué es un Runner?**: Servidor que ejecuta los workflows. GitHub provee runners de Ubuntu, Windows y MacOS.
**¿Qué es un Step?**: Puede ser: un script/comando de shell o un action que se ejecutará.
**¿Qué es un Action?**: Aplicación personalizada que realiza una tarea compleja repetitiva.
### :keyboard: Actividad: Crea un workflow file
1. Abra una nueva pestaña del navegador y siga los pasos de la segunda pestaña mientras lee las instrucciones de esta pestaña.
1. Cree un Pull Request para ver todos los cambios que realizará a lo largo de este curso. Haga clic en la pestaña *Pull Requests*, haga clic en *New Pull Request*, establezca `base: main` y `compare: aprendiendo-github-actions`.
1. Vaya a la pestaña *Code*.
1. En el menú desplegable de la rama *main*, haga clic en la rama *aprendiendo-github-actions*.
1. Agrega un script simple en tu lenguaje de programación preferido (Python, JavaScript, Go, Rust, etc.) que imprima un "Hola Mundo".
1. Navegue a la carpeta `.github/workflows/`, luego seleccione **Add file** y haga clic en **Create new file**.
1. En el campo **Name your file...**, ingrese `hola-mundo.yml`.
1. Con lo aprendido hasta el momento, crea un workflow file que corra el archivo del paso anterior que imprime el "Hola Mundo".
1. Espere unos 20 segundos y luego actualice esta página para el siguiente paso.
Ayuda
Crea un archivo llamado `hola_mundo.py` en la raiz del repositorio y agrega el siguiente contenido:
```python
import osdef main():
nombre = os.getenv("USERNAME")
print(f"¡Hola, {nombre} desde GitHub!")if __name__ == "__main__":
main()
```Agregue el siguiente contenido al archivo `hola-mundo.yml`:
```yaml
name: Aprendiendo GitHub Actions
run-name: ¡Estoy aprendiendo GitHub Actions!
on: [push]
jobs:
hola-mundo:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Definir variable
run: echo "USERNAME=${{ github.actor }}" >> $GITHUB_ENV
- name: Correr script
run: python hola_mundo.py
```
Paso 2: Conoce los principales Triggers
_¡Creaste tu primer Workflow! :tada:_
Ahora que conoces los componentes básicos de un workflow en GitHub Actions podemos empezar a explorar nuevos conceptos. El primero será ver los principales _eventos_ o _Triggers_ para lanzar un nuevo workflow.
**¿Qué eventos exploraremos?**
- push
- pull_request
- issues
- issue_comment
- workflow_dispatch
- schedule### :keyboard: Actividad: Expermienta con los distintos Triggers
1. Vuelve a la rama en que estabamos trabajando (*aprendiendo-github-actions*).
1. Navegue a la carpeta `.github/workflows/`, luego seleccione **Add file** y haga clic en **Create new file**.
1. En el campo **Name your file...**, ingrese `triggers.yml`.
1. Crea un workflow que incluya al menos 3 de los triggers que vimos en la clase.
1. Espere unos 20 segundos y luego actualice esta página para el siguiente paso.
Ayuda
Agregue el siguiente contenido al archivo `triggers.yml`:
```yaml
name: Triggers
run-name: ¡Estoy aprendiendo a usar diferentes Triggers!
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
paths:
- '**.py'
issues:
types:
- labeled
workflow_dispatch:
inputs:
lenguaje_favorito:
description: 'Lenguaje favorito'
default: Python
required: true
type: choice
options:
- Python
- JavaScript
- Go
nombre:
description: 'Tu nombre'
required: true
default: Juan
type: string
schedule:
- cron: '15 22 * * *'
jobs:
hola-mundo-manual:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Definir nombre
run: echo "USERNAME=${{ inputs.nombre }}" >> $GITHUB_ENV
- name: Definir lenguaje
run: echo "LANGUAGE=${{ inputs.lenguaje_favorito }}" >> $GITHUB_ENV
- name: Correr script
run: python hola_lenguaje.py
hola-mundo:
if: ${{ github.event_name != 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Definir variable
run: echo "USERNAME=${{ github.actor }}" >> $GITHUB_ENV
- name: Correr script
run: python hola_mundo.py```
Paso 3: Aprende a usar Expresiones
_¡Buen trabajo usando los distintos eventos para lanzar nuevos workflows! :sparkles:_
Ahora que conoces como lanzar distintos workflows con los principales tipos de eventos es importante sacar provecho del uso de _Expresiones_ en nuestros workflow files para obtener mayor versatilidad y opciones.
**¿Qué son las expresiones?**: Es una forma de configurar variables de entorno y acceder al contexto. Usan una sintaxis especial ${{ }}
Puedes combinar valores literales, referencias de contexto y funciones usando operadores o condicionales.
### :keyboard: Actividad: Crea tus primeras Expresiones
1. Vuelve a la rama en que estabamos trabajando (*aprendiendo-github-actions*).
1. Navegue a la carpeta `.github/workflows/`, luego seleccione **Add file** y haga clic en **Create new file**.
1. En el campo **Name your file...**, ingrese `expresiones.yml`.
1. Crea un workflow que incluya al menos 3 expresiones de las vistas en clase.
1. Espere unos 20 segundos y luego actualice esta página para el siguiente paso.
Ayuda
Agregue el siguiente contenido al archivo `expresiones.yml`:
```yaml
name: Expresiones
run-name: ¡Estoy aprendiendo a usar Expresiones!
on:
workflow_dispatch:
inputs:
edad:
description: 'Edad'
required: true
type: integer
nombre:
description: 'Tu nombre'
required: true
default: 'Juan'
type: string
jobs:
mayor:
if: ${{ inputs.edad >= 18 }}
runs-on: ubuntu-latest
steps:
- name: Correr script
run: echo ${{ inputs.nombre }} es mayor de edad
menor:
if: ${{ inputs.edad < 18 }}
runs-on: ubuntu-latest
steps:
- name: Correr script
run: echo ${{ inputs.nombre }} es menor de edad
```
Paso 4: Aprende a usar los distintos Contextos
_¡Excelente trabajo con el uso de Expresiones! :partying_face:_
Como ya vimos, mediante el uso de Expresiones podemos acceder a información de formá dinámica durante la ejecución de nuestros workflows. Una de las fuentes más importantes de información usada es la que nos brindan los contextos.
**¿Qué son los contextos?**: Es una manera de acceder a información acerca de las ejecuciones de workflows, variables, entornos de runners, jobs y steps. Cada contexto es un objeto que contiene propiedades.
Los más usados son:
- github
- env
- vars
- job
- steps
- runner
- secrets
- inputs### :keyboard: Actividad: Usa los diferentes contextos
1. Vuelve a la rama en que estabamos trabajando (*aprendiendo-github-actions*).
1. Navegue a la carpeta `.github/workflows/`, luego seleccione **Add file** y haga clic en **Create new file**.
1. En el campo **Name your file...**, ingrese `contextos.yml`.
1. Crea un workflow que incluya el uso de alguno de los contextos que vimos en clase.
1. Espere unos 20 segundos y luego actualice esta página para el siguiente paso.
Ayuda
Agregue el siguiente contenido al archivo `contextos.yml`:
```yaml
name: Contexto
run-name: ¡Estoy aprendiendo a usar Contextos!
on: push
jobs:
check-main:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run: echo "Desplegando en la rama $GITHUB_REF"
```
Paso 5: Aprende a usar las Variables de Entorno
¡Ya estás a un paso de terminar! :heart:
El uso de variables de entorno es lo único que te falta por aprender de los principales conceptos y componentes de GitHub Actions, así que vamos a por ello.
**¿Qué son las variables?**: Son una manera de almacenar y reutilizar información de configuración no confidencial. Tales como datos de configuración, como marcas del compilador, nombres de usuario o nombres de servidor como variables.
### :keyboard: Actividad: Usa variables de entorno en tu workflow
1. Vuelve a la rama en que estabamos trabajando (*aprendiendo-github-actions*).
1. Navegue a la carpeta `.github/workflows/`, luego seleccione **Add file** y haga clic en **Create new file**.
1. En el campo **Name your file...**, ingrese `variables.yml`.
1. Crea un workflow que incluya el uso de variables.
1. Espere unos 20 segundos y luego actualice esta página para el siguiente paso.
Ayuda
Agregue el siguiente contenido al archivo `variables.yml`:
```yaml
name: Saludo usando variables
run-name: ¡Estoy aprendiendo a usar Variables!
on:
workflow_dispatch
env:
DIA_DE_SEMANA: Lunes
jobs:
saludo-variables:
runs-on: ubuntu-latest
env:
SALUDO: Hola
steps:
- name: Saludar
run: echo "$SALUDO, $NOMBRE. Hoy es $DIA_DE_SEMANA!"
env:
NOMBRE: Juan
```
Cierre
_¡Felicidades! haz completado esta sección del Curso Básico de GitHub Actions de Platzi 💚_
Ya conoces los principales conceptos para crear workflows que te sirvan para automatizar todo tipo de tareas incluidas las de integración y despliegue continúo.
Has aprendido sobre:
- Qué son Worfklows.
- Qué son Events.
- Qué son Jobs.
- Qué son Runners.
- Qué son Steps.
- Qué son Ations.
- Cuál es la sintaxis de un workflow file.
- Cuáles son los principales Triggers.
- Uso de Expresiones.
- Acceder a información de Contextos.
- El uso de variables para acceder a información reutilizable.### ¿Qué sigue?
- Puedes crear flujos de Integración Continúa (CI) para tus proyectos.
- Puedes crear flujos de Despliegue (CD) para tus proyectos.
- Puedes automatizar todo tipo de tareas en tus repositorios para mantener un mejor orden y control.---
© 2023 Platzi • [Código de Conducta](https://www.contributor-covenant.org/version/2/1/code_of_conduct/code_of_conduct.md) • [CC-BY-4.0 License](https://creativecommons.org/licenses/by/4.0/legalcode)