Despliegue continuo con Fly.io y GitHub Actions

Despliegue continuo con Fly.io y  GitHub Actions

En el mundo del desarrollo de software, el despliegue continuo se ha convertido en una práctica esencial para entregar actualizaciones de forma rápida y segura a los usuarios. En este blog, te guiaré a través de un proceso paso a paso para implementar un flujo de trabajo de despliegue continuo utilizando Fly.io y GitHub Actions.

¿Qué son Fly.io y GitHub Actions?

  • Fly.io: Una plataforma de alojamiento en la nube que te permite implementar y escalar tus aplicaciones sin necesidad de administrar servidores.
  • GitHub Actions: Una herramienta automatizada de GitHub que te permite ejecutar flujos de trabajo personalizados para automatizar tareas como pruebas, empaquetado y despliegue.

Antes de empezar

  • Cuenta de Fly.io: Crea una cuenta en Fly.io para acceder a sus servicios de alojamiento.
  • Repositorio de GitHub: Crea un repositorio de GitHub para alojar tu código fuente y configurar el flujo de trabajo de despliegue.
  • Instalación de herramientas: Instala las herramientas necesarias, como el CLI de Fly.io y la extensión de GitHub Actions.
  1. Ejecute fly launch --no-deploy desde el directorio fuente del proyecto para crear una nueva aplicación en Fly.io y un archivo de configuración fly.toml.
  2.  Cuando se muestre el mensaje de:
Do you want to tweak these settings before proceeding? y/N`

Podremos llenar el formulario con la configuración y nombre de la aplicación, en esta misma pantalla se creara la instancia utilizada por la base de datos.


Las varibles de entorno SECRET_KEY_BASE y DATABASE_URL se generaran automaticamente

Al dar click en `Confirm settings`

3.  Todavía en el directorio fuente del proyecto, debemos obtener un Fly API  deploy token esto lo logramos ejecutando.

fly tokens create deploy -x 999999h

Copia la salida, incluyendo el FlyV1 y el espacio al principio.

4.  De vuelta en el directorio fuente de tu proyecto, crea el archivo .github/workflows/fly.yml con el siguiente contenido:

name: Desplegando en Fly.io
on:
  push:
    branches:
      - master    # cambiar a main si es necesario
jobs:
  deploy:
    name: Deploy app
    runs-on: ubuntu-latest
    concurrency: deploy-group
    steps:
      - uses: actions/checkout@v4
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

No olvides agregar FLY_API_TOKEN como parte de los secretos de tu repositorio

¡Y ahí lo tienes! Ya has aprendido lo básico para desplegar tu app a Fly.io e integrar un flujo de CI/CD con GitHub Actions.

Recuerda si requieres Custom Software, DevOps, Consultoria aquí estamos para ayudarte.

Foxlabs Developers
We have built and launched our clients’ applications, guiding them from planning to production and scaling.