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
name: Node.js CI
A continuación, indicamos los métodos de inicio del workflow, para este caso tenemos tres
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/checkout@v2
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