Implementación de GitHub Actions para Despliegue en Heroku

Clase 20 de 21Curso 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.

Screenshot from 2022-07-29 12-31-59.png

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.

Screenshot from 2022-07-29 12-33-41.png

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.