Curso Básico de GitHub Actions

Curso Básico de GitHub Actions

Oscar Barajas Tavares

Oscar Barajas Tavares

Primeros pasos en GitHub Actions

2/10
Recursos

Aportes 10

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Los componentes de GitHub Actions

💡 Info
GitHub Actions es una plataforma de CI/CD que nos permite automatizar pipelines para construcciones, pruebas y despliegue mediante eventos.

.
Para su configuración, se puede personalizar al lanzar eventos que ocurren dentro de un repositorio, tales como la integración de un Pull Request o en la apertura de un Issue.
.
Cada pipeline es definido por uno o más trabajos ejecutados secuencialmente o en paralelo, progresando mediante varios pasos llamados aciones o runners.
.

.
Workflow

  • Un Workflow es un proceso automatizado que ejecuta uno o más trabajos definidos en un archivo YAML.
    .
  • Un repositorio puede tener múltiples workflows donde cada uno realiza diferentes pasos de ejecución. Sin embargo, existe la posibilidad de reutilizar los workflows.

.
Eventos

  • Un event es un actividad específica que lanza un workflow.
    .
  • Se puede personalizar el evento para orquestar resultados definidos en la creación de un Pull Request, cierre de un Issue o al fusionar los cambios al repositorio en remoto.

.
Jobs

  • Un Job es una serie de pasos que es definido por un workflow.
    .
  • Cada paso es ejecutado secuencialmente y puede ser compartido entre workflows. Sin embargo, se puede generar independiente manejado condicionales definidos como casos.

.

ℹ️ Nota.
Un Runner es una máquina virtual que ejecuta un trabajo a la vez el cual puede ser Ubuntu, Windows o MacOS.

La interfaz de como se ejecuta el GitHub Actions se ve muy parecida a los Pipeline de Azure DevOps, después de todo los dos pertenecen a Microsoft.

Si se fijan la primera vez no corrió porque el archivo se creó como workflowsnode.js ya que por un typo se borró el directorio workflows/ y se creó mal en el primer commit.

aquí pueden ver el typo Solo fijense de poner / para crear directorios 😄

Algunos apuntes tomados de la documentación oficial de Github Actions.

Definición de un Worfflow

💡 INFO
GitHub Actions usa archivos YML para definir los workflows, guardados en el repositorio en el directorio .github/workflow

.

name: Hello Cowsay
on: [push]
jobs:
  cowsay:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: npm install -g cowsay
      - run: cowsay Hello Platzi 

.github/workflow/deploy.yml
.

Línea Descripción
name: Hello Cowsay Opcional. Nombre que aparecerá en el tab de Github Actions
on: [push] Especifica el evento del Action. Cada vez que se fusionan los cambios al repositorio, el Action será lanzado.
jobs: Definición de los trabajos o pipelines a realizar.
cowsay: Define el nombre de un trabajo con el cual definimos propiedades al trabajo.
runs-on: ubuntu-latest Se configura el Runner sobre una máquina Ubuntu.
steps: Definición de pasos a realizar en el Job.
- uses: actions/checkout@v2 Con uses definimos un Action o paso.
Qué fastidio con los profesores de Platzi. Siempre hacen errores y suben con ellos sus vídeos. No ven que baja la calidad?? El haber guardado el primer .yaml directamente en .github y no dentro de .github/workflows hizo que su script no sirva para nada y por eso tuvo que crear otro llamado blank.yaml en el buen lugar. Y lo peor es que ni explica, lo pasa por alto como si nada. Y así en muchos cursos, hacen cosas absurdas y se hacen los locos! No creo que renueve mi suscripción...

El paso a paso:

  • Creamos un repositorio.
  • Configuramos el archivo .yml en tab Actions.
  • Confirmamos los cambios.
  • Podemos ver el workflow correr en tab Actions.

¡Así de fácil hacemos automatizamos una Entrega Continua!

La interfaz cambio un poco, pero den click en Configure de la tarjeta Simple workflow

Bueno yo he estado haciendo uso del visual studio para este proceso; pero muy bueno saber que el GH Actions también se pueda emplear.

#Nombre de la acción nos ayudara a diferenciar la tarea que estamos haciendo.

name: CI

# Lo siguiente es la forma en la que se va a desencadenar nuestro recurso.
# Puede ser cuando hagamos algo, cambio a una rama, pull request, commit

on:
  # Disparadores del flujo de trabajo en pull, push request, pero unicamente para
  # la rama Main
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

  # Permite ejecutar el flujo de trabajo manualmente desde la pestaña
  # acciones
  workflow_dispatch:

  # Los flujos de trabajo se ejecutan a travez de un job  o mas seguidos o paralelos
  jobs:

  # Este workflow solo tiene un trabajo llamado "build"
  build:

   # En que ecosistema va a vivir este Job
    runs-on: ubuntu-latest

    # Pasos que representan la secuencia de la tarea que sera ejecutada por el job
    steps:
      # Chequeando tu repositorio este bajo $GITHUB_WORKSPACE, puedes acceder a el
      - uses: actions/checkout@v3

      # Ejecuta un comando simple en el shell
      - name: Run a one-line script
        run: echo Hello, world!

      # Ejecutano un grupo de comandos en el shell
      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.