Implementación de GitHub Actions para Despliegue en Heroku
Clase 20 de 21 • Curso de Backend con Rust: Bases de Datos, Controladores y Templates
Resumen
Teniendo nuestra aplicación correctamente armada con Docker, vamos a desplegarla a Heroku con ayuda de GitHub Actions.
Docker + GitHub Actions + Heroku
Dockerizada la aplicación, utilizaremos GitHub Actions para crear un pipeline de despliegue en Heroku.
Paso 1. Configuración GitHub Actions
GitHub Actions nos permitirá automatizar de forma muy sencilla el despliegue de nuestra aplicación en Heroku cada vez que hagamos un push en una rama determinada que indiquemos.
Para esto, crea la ruta en tu proyecto .github/workflows/main.yml
con el siguiente contenido:
name: Deploy
on:
push:
branches:
- master # main o master, dependiendo cómo se llama la rama principal de tu proyecto en GitHub
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/heroku-deploy@v3.12.12
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}} # Clave secreta de Heroku (Configurar desde GitHub Actions)
heroku_app_name: "rustbackend" # Nombre de la aplicación
heroku_email: "kevin@gmail.com"
usedocker: true
Paso 2. Autenticación en Heroku
Instala el CLI de Heroku en tu ordenador y posterior a eso inicia sesión en la consola con el comando heroku login
. Una vez autentificado, crea un nuevo Token de autorización que utilizaremos para que GitHub Actions pueda conectarse y desplegar la aplicación.
Utiliza el comando heroku authorizations:create
y copia el Token desde la salida de la terminal similar a la siguiente:
Creating OAuth Authorization
Client: <none>
ID: 2834aced-104d-4919-8ded-78cd91a89e2b
Description: Long-lived user authorization
Scope: global
Token: d23d3087-c22a-4112-b5gg-2c04853c470a
Updated at: Fri Jul 29 2022 12:29:19 GMT-0300 (GMT-03:00) (less than a minute ago)
Ve al repositorio del tu proyecto en GitHub --> Settings --> Secrets --> Actions --> New repository secret
y crea la variable que leerá el main.yml
que configuraste en GitHub Actions.

Paso 3. Despliegue de la aplicación
Una vez configurado, has un push en tu repositorio al branch que configuraste en el main.yml
. GitHub detectará el pipeline y automáticamente lanzará el despliegue. Puedes darle seguimiento desde la pestaña Actions.

En cuestión de minutos, podrás acceder a el URL que Heroku provee para aplicaciones gratuitas similar a http://<project-name>.herokuapp.com
y si todo ha ido bien, verás tu aplicación web desarrollada en Rust.
Contribución creada por: Kevin Fiorentino.