¿Cómo hacer el deploy en un servidor de manera manual y automática con GitHub Actions?

Hola mundo, y bienvenidos a este artículo, en este, vamos a ver cómo hacer cambios en nuestro servidor cuando hemos actualizado el repositorio de nuestras aplicaciones, para este, tenemos ya montado una aplicación de Django configurada en un servidor de Hostinger, este proceso de integración continua y despliegue continuo (CI/CD).

Este proceso lo podemos hacer de dos maneras, una manual y una automática gracias a la ayuda de GitHub Actions, así que veremos estos dos procesos, si quieres curiosear acerca de este proyecto y todo el proceso que hicimos para tener esta aplicación en un servidor desde cero, te dejaré el artículo donde vemos todo ¿Cómo desplegar tus apps de Python con Hostinger y GitHub Actions?

Ahora si vamos a ver el primer tipo de proceso, el que hacemos de manera manual:

Actualizar cambios en el servidor de manera manual

Vamos a hacer un cambio en nuestro proyecto para posteriormente los cambios se vean en nuestra aplicación, para eso, en nuestro proyecto vamos a ir al siguiente archivo: templates/inicio.html

Actualizar archivo HTML
Actualizar archivo HTML

Y dejaremos esto de la siguiente manera, estamos eliminando el texto «en llamas».

Modificaciones realizadas al proyecto
Modificaciones realizadas al proyecto

Pero tú puedes incluir cualquier otro tipo de texto, lo importante es que sea diferente al actual, vamos a guardar los cambios y ejecutaremos los siguientes comandos en nuestra terminal, en este caso abriremos otra terminal o saldremos de la terminal servidor para regresar a nuestra terminal local:

git add .templatesinicio.html
git commit -m "cambios en la pagina de inicio"
git push 

Con esto realizado correctamente, vamos a tener los cambios en nuestro repositorio de GitHub.

Cambios subidos con éxito al repositorio en GitHub
Cambios subidos con éxito al repositorio en GitHub

Pero, esto no se reflejará en nuestro servidor, para eso tenemos que ir a la terminal de nuestro servidor, recuerda que accedemos con el comando:

ssh root@<la ip de tu servidor proporcionada en Hostinger>
cd /usr/local/lsws/Example/html
cd productly
git pull

Esto va a traer los cambios a nuestro repositorio en el servidor, pero si no se ven reflejados, tendremos que entrar al panel de administración como lo hicimos anteriormente para clonar y configurar el repositorio en el servidor, y hacer clic en el icono de recarga como se ve en la siguiente imagen.

Recargar el servidor desde el panel de administración

O ir directamente a la página de Hostinguer y reiniciarlo, como hicimos en el paso anterior.

Reinicio de la VPS desde Hostinger

Automatizar el despliegue con GitHub Actions

Para no hacer este proceso en cada cambio que hagamos, podemos automatizarlo gracias a la ayuda de «GitHub Actions«, para lo cual vamos a tener que dirigirnos a nuestro repositorio y vamos a ir a la pestaña llamada «Actions«

Pestaña de Actions en el repositorio GitHub
Pestaña de Actions en el repositorio GitHub

Y en esta pestaña vamos a hacer clic en «set up a workflow yourself«

Configurando un flujo de trabajo en GitHub Actions
Configurando un flujo de trabajo en GitHub Actions

Después de dar clic, vamos a asegurarnos de tener este archivo con extensión .yml, en esta ruta específica.

Generando el archivo main.yml en el repositorio de GitHub

Y vamos a escribir lo siguiente:

name: Despliegue en hostinger
on:
  push:
    branches:
      - main

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: pull codigo en VPS
        uses: appleboy/ssh-action@master
        with: 
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          script: |
                    cd /usr/local/lsws/Example/html/productly
                    git fetch origin main
                    git reset --hard origin/main

Y una vez que tengamos listo el archivo, vamos a poder guardar los cambios desde GitHub haciendo el commit correspondiente haciendo clic sobre el botón «Commit changes…«

Guardando los cambios en el repositorio
Guardando los cambios en el repositorio

Despues podremos presionarlo veremos la siguiente pantalla y haremos clic en el boton «Commit changes»

Guardando cambios en un nuevo commit
Guardando cambios en un nuevo commit

Ahora, cuando hagamos un commit veremos en el repositorio el siguiente punto, que significa que hay un flujo de trabajo ejecutándose.

Flujo de trabajo ejecutándose
Flujo de trabajo ejecutándose

Si hacemos clic en la pestaña de «Actions» ahora vamos a ver la siguiente pestaña:

Lista de flujos de trabajo que se están ejecutando
Lista de flujos de trabajo que se están ejecutando

Ahora si hacemos clic en esta tarea vamos a ver el paso a paso de lo que se está ejecutando, en la siguiente imagen podemos ver que el proceso ha fallado, esto ha pasado porque no están definidos los secretos, que es lo siguiente que tocará realizar, recuerda que todo este proceso lo tienes en el artículo:¿Cómo desplegar tus apps de Python con Hostinger y GitHub Actions?

Paso a paso de la ejecución
Paso a paso de la ejecución

Con esto quedaria listo la parte del despligue. Y si quieres adquirir un plan anual de Hostinger, no olvides utilizar el código HOLAMUNDO en tu suscripción al servicio de 12 meses para obtener aún más descuento, y ahora te preguntamos ¿qué aplicación o aplicaciones son la que subirás a tu servidor?

Te dejaremos el enlace a todos nuestros cursos de programación, los cuales los encontrarás disponibles en la academia Hola Mundo y puedes optar por adquirir los cursos de manera individual en el siguiente link: todos los cursos de Hola Mundo, si prefieres acceso a todo, también puedes elegir un plan de suscripción mensual o anual, o tambien puedes optar por cada curso de manera individual en Udemy.

Y esto ha sido todo de este post, si te ha encantado, ¡golpea al botón de me gusta!, dejanos un comentario, y para no perderte nada, no olvides suscribirte a este blog, seguirnos en todas las redes como Youtube, Twitter, Instagram y Tiktok, y por último, te invitamos a escuchar nuestra música «Hola Beats«, diseñada para ayudarte a concentrarte y acompañarte en tu aprendizaje o trabajo, la puedes encontrar en Spotify, Apple Music, Amazon Music, Youtube Music y Deezer.

¡Hasta la próxima!, y chao mundo

Gabriel Hernández

Soy desarrollador fullstack autodidacta y estudié administración en la universidad. Mi stack es principalmente con JavaScript, haciendo frontend con React y Next, y backend con Node y Express. Otras herramientas con las que he trabajado son Python para backend y Solidity para desarrollo de contratos inteligentes.

Deja un comentario

Press ESC to close

Descubre más desde Hola Mundo

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo