Usar Gitea Actions para desplegar un sitio web de Hugo en AWS S3
Después de configurar Gitea y Hugo en AWS S3...
El siguiente paso es implementar algunos CI/CD y configurar Gitea Actions para el sitio web de Hugo, para empujar el sitio web a AWS S3 automáticamente cuando se actualice la rama master.
Ya hemos configurado - después de instalar, configurar y probar Gitea Configuración del servidor Gitea, y configurar SSL en Gitea, implementación del sitio web de Hugo en AWS S3.
Bien. Vamos
Generar un nuevo token para el runner de Gitea
Navega a https://your-gitea-server/your-user/your-repo/settings/actions/runners
y haz clic en Crear nuevo runner
copia el token de registro
Iniciar un nuevo runner de Gitea
conéctate por ssh al servidor donde se ejecutará el nuevo runner de Gitea
y inicia el contenedor de docker. puedes iniciarlo como un ejecutable separado, ejecutarlo 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 haya registrado correctamente
Navega a https://your-gitea-server/your-user/your-repo/settings/actions/runners
y deberías ver que ya está en ejecución
Crear un par de secretos de AWS
Ve a: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
Y crea un par de secretos grandes: AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY. ¿Sabes qué significan, verdad?
Crear un flujo de trabajo de Gitea para construir y desplegar Hugo a S3
En tu proyecto de Hugo, en la carpeta .gitea/workflows
crea 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 "🎉 El trabajo fue automáticamente desencadenado por un evento ${{ gitea.event_name }}."
- run: echo "🐧 Este trabajo ahora se está ejecutando en un servidor ${{ runner.os }} alojado por Gitea!"
- run: echo "🔎 El nombre de tu rama es ${{ gitea.ref }} y tu repositorio es ${{ gitea.repository }}."
- name: Verificar el código del repositorio
uses: actions/checkout@v4
with:
submodules: true # Descargar temas de Hugo (true OR recursivo)
fetch-depth: 0 # Descargar toda la historia para .GitInfo y .Lastmod
- run: echo "💡 El repositorio ${{ gitea.repository }} ha sido clonado en el runner."
- name: Configurar Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.134.1' # o elimina esto para la última versión
extended: true
- name: Listar archivos en el repositorio
run: |
ls
- name: Construir
run: hugo
- name: Desplegar
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 "🍏 El estado de este trabajo es ${{ job.status }}."
Si por alguna razón no tienes un gran deseo de alojar tu sitio en Sydney - cambia AWS_REGION a lo que más te guste.
Este fragmento de configuración:
on:
push:
branches:
- master
se encargará de todos los empujes y fusiones en la rama master.
Confirmar y empujar
Después de empujar los cambios al servidor, deberías ver en la página https://your-gitea-server/your-user/your-repo/actions algo parecido a
¡Tenga un excelente día!
Enlaces útiles
- Implementar sitio web generado por Hugo en AWS S3
- Enviar formulario de Google en sitio web de Hugo
- Hoja de trucos de Hugo
- Temas más populares para Hugo
- Manejo de imágenes en el tema Mainroad
- Hoja de trucos de Markdown
- Configuración del servidor Gitea
- Configurar SSL en Gitea
- Reinstalar Linux
- Hoja de trucos de Bash
- Hugo Space
- Cómo almacenar imágenes de miniatura en la carpeta del paquete de página para sitios de Hugo con el tema Mainroad