Uso de Gitea Actions para desplegar un sitio web de Hugo en AWS S3

«Tras configurar el upd en Gitea y Hugo sobre AWS S3...»

Índice

El siguiente paso es implementar algunas tareas de CI/CD y configurar Gitea Actions para un sitio web de Hugo, para desplegar el sitio en AWS S3 automáticamente cuando la rama principal (master) se actualice.

Hemos hecho ya — tras instalar, configurar y probar Gitea Configuración del servidor Gitea, y configurar SSL en Gitea, configurado el despliegue del sitio web de Hugo en AWS S3.

Esta guía forma parte de nuestra documentación de infraestructura web que cubre estrategias de despliegue en AWS. Para la configuración de la distribución de CloudFront, consulte creación de CloudFront con facturación por uso. También puede explorar desplegando Hugo con AWS CLI para enfoques alternativos de despliegue.

Gitea Runner

Bueno. Empecemos

Generar un nuevo token para el runner de Gitea

Navegue a https://your-gitea-server/your-user/your-repo/settings/actions/runners

y haga clic en Create New Runner

Create New Runner

Copie el token de registro (Registration Token)

Iniciar un nuevo Runner de Gitea

Conéctese por ssh al servidor donde se ejecutará su nuevo runner de Gitea

y inicie el contenedor de Docker. Puede iniciarlo como un ejecutable separado, como un servicio, etc., pero aquí estoy usando un contenedor de Docker.

sudo docker run \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e GITEA_INSTANCE_URL=http://<my-gitea-server>:3000/ \
    -e GITEA_RUNNER_REGISTRATION_TOKEN=<my-registration-token> \
    -e GITEA_RUNNER_NAME=srv-act-runner \
    --name my_runner \
    --restart always \
    -d docker.io/gitea/act_runner:latest

Verificar que el runner se registró correctamente

Navegue a https://your-gitea-server/your-user/your-repo/settings/actions/runners

y debería ver que ya está en ejecución

Crear un par de secretos de AWS

Vaya a: https://your-gitea-server/your-user/your-repo/settings/actions/secrets

Y cree un par de secretos importantes: AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY. ¿Sabes lo que significan, verdad?

aws-secrets

Crear un flujo de trabajo (Workflow) de Gitea para compilar y desplegar Hugo en s3

En su proyecto de Hugo, en la carpeta .gitea/workflows, cree un archivo hugo-deploy.yaml

name: Gitea Actions - Hugo Deploy
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on:
  push:
    branches:
      - master
jobs:
  Hugo-Deploy:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
      - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."

      - name: Check out repository code
        uses: actions/checkout@v4
        with:
          submodules: true  # Fetch Hugo themes (true OR recursive)
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: '0.134.1' # or remove this for the latest
          extended: true

      - name: List files in the repository
        run: |
          ls

      - name: Build
        run: hugo

      - name: Deploy
        run: hugo deploy
        env:
          AWS_REGION: 'ap-southeast-2'
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

      - run: echo "🍏 This job's status is ${{ job.status }}."

Si por alguna razón no tiene un gran deseo de hospedar su sitio en Sídney, cambie AWS_REGION a lo que le guste más.

Este fragmento de configuración:

on:
  push:
    branches:
      - master

se encargará de todas las operaciones de push y merges hacia la rama master.

Confirmar y enviar (Commit y push)

Después de enviar los cambios al servidor, debería ver en la página https://your-gitea-server/your-user/your-repo/actions algo similar a

hugo-deploy-log-gitea-actions

¡Que tenga un gran día! Una vez que su runner de Gitea Actions esté desplegado y compilando su sitio, no olvide que la instancia que lo ejecuta aún necesita su propia red de seguridad: consulte Copia de seguridad y restauración del servidor Gitea para el flujo de trabajo de gitea dump.

Enlaces útiles

Suscribirse

Recibe nuevas publicaciones sobre sistemas, infraestructura e ingeniería de IA.