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.