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.
- 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ónfly.toml
. - 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.