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...»
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.

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

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?

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

¡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.