1

Automatizacion Obtencion de la informacion

Para este tutorial debemos tener el archivo con el script creado con el profesor y su respectivo comando de inicialización en el package, y tenerlo en el sistema de GitHub ya que usaremos las Actions, y la versión de Node en la que función nuestro proyecto

  1. Crearemos la carpeta .github, dentro de ella creamos la carpeta workflows y en esta carpeta creamos el archivo .yml con el nombre que le vamos a dar a la Action o el nombre del workflow
    .github.PNG
    Importante que sea .yml
  2. vamos a ir escribiendo línea a línea y explicando que hace cada una
    El nombre del workflow como GitHub ya tiene varios témplate para crear actions el mío está basado en uno de Node
name: Node.js CI

A continuación, indicamos los métodos de inicio del workflow, para este caso tenemos tres

  • Cuando hacemos un push en la rama indicada (para este caso en Main)
  • Activación manual bien sea desde el CLI de GitHub o desde el explorador - Manually running a workflow - como se muestra en su propia documentación
  • Y el ultimo, que es para mí el más interesante realizarlo de manera automática en ciertos momentos indicados
on:
    push:
        branches:
          - main
    workflow_dispatch:
    
    schedule:
      - cron: "0 */12 * * *"

Esta línea es interesante de explicar ya que con un string de cinco elementos separados por espacios podemos indicarle fechas exactas con minutos - Horas - día del mes - mes - día de la semana

y pudiendo realizar combinaciones, por ejemplo, este elemento nos indica que en el minuto 0 cada 12 horas, y sin importar nada más realizara de manera automatiza la acción

      -cron:"0 */12 * * *"

Este indica que se realizara solo el Primero de Enero de cada año a las 5 de la tarde sin importar que día de la semana sea este día, es de aclarar que las horas son en UTC, sin tener en cuenta tu hora local

-cron:"0 5 1 1 *"

en esta sección vamos a enumerar los trabajos y a nombrarlos

jobs:  build:

A continuación, indicamos en que sistema operativo se va a encender la máquina que usaremos

    runs-on: ubuntu-latest

Iniciamos con los pasos

    steps:

Esta sección la usamos para poder manipular el repo como tal, poder hacer commit y demás acciones que tengan que ver con git y GitHub

    -uses: actions/[email protected]

Aquí indicaremos el lenguaje que vamos a usar, en este caso use la V1, pero al momento de escribir este tutorial van en la V2, y este nos permite instalar dependencias y correr comandos NPM

    - uses: actions/setup-node@v1

Ahora indicamos la versión de Node que como te dije al principio debemos saber muy bien e instalamos las dependencias

      with:
        node-version: '16'
    - run: npm install

A continuación, corremos el comando definido para la actualización de los posts en este caso

    - run: npm run data

Las líneas siguientes se hacen para configurar el username y el correo en git, se realiza el add que para mi caso agrego todo, porque el script hace cambios en varios archivos, pero no es una buena práctica, realizamos el commit con el mensaje el cual va a estar repetido en varias ocasiones, pero cada commit tendrá un hash diferente, y por último hacemos el push en origin main.
Para poder escribir múltiples comandos con una sola instrucción “run” justo después de la instrucción usamos |,

    - run: |
        git config user.name jcamilofarfan
        git config user.email [email protected]
        git add .
        git commit -m "[bot] Update data tags and articles"
        git push origin main

Dando por resultado el siguiente código

name: Node.js CI

on:
    push:
        branches:
          - main
    workflow_dispatch:
    
    schedule:
      - cron: "0 */12 * * *"jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1with:
        node-version: '16'
    - run: npm install
    - run: npm run data
    - run: |
        git config user.name jcamilofarfan
        git config user.email farfan1976@hotmail.com
        git add .
        git commit -m "[bot] Update data tags and articles"
        git push origin main

Y así con nuestro blog alojado en Netlify, reconstruyéndose cada que hay un cambio en la rama main y la GitHub actions realizado constante verificación de los nuevos posts, podremos centrarnos en escribir en GHOST sin tener que correr comando de manera manual cada que escribimos algo nuevo

Para mas sobre las Actions puedes ver el curso de GNDX
Y para mas de git y github el de Freddy

Gracias por leerme

Escribe tu comentario
+ 2