Déployer un site Hugo sur AWS S3 à l'aide de Gitea Actions
« Après avoir configuré Gitea et Hugo sur AWS S3... »
L’étape suivante consiste à mettre en place une intégration et une livraison continues (CI/CD) et à configurer Gitea Actions pour un site Hugo, afin de pousser le site vers AWS S3 automatiquement lorsque la branche master est mise à jour.
Nous avons déjà - après l’installation, la configuration et les tests de Gitea Installation du serveur Gitea, et la configuration du SSL de Gitea, configuré le déploiement du site Hugo vers AWS S3.
Ce guide fait partie de notre documentation sur l’infrastructure web qui couvre les stratégies de déploiement AWS. Pour la configuration de la distribution CloudFront, consultez la création de CloudFront en mode pay-as-you-go. Vous pouvez également explorer le déploiement de Hugo avec AWS CLI pour des approches de déploiement alternatives.

D’accord. C’est parti.
Générer un nouveau jeton pour le runner Gitea
Naviguez vers https://your-gitea-server/your-user/your-repo/settings/actions/runners
et cliquez sur Create New Runner

copiez le jeton d’enregistrement (Registration Token)
Démarrer le nouveau runner Gitea
Connectez-vous en SSH au serveur où votre nouveau runner Gitea sera exécuté
et démarrez le conteneur Docker. Vous pouvez le démarrer comme un exécutable séparé, l’exécuter en tant que service, etc., mais ici j’utilise un conteneur 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
Vérifier que le runner est correctement enregistré
Naviguez vers https://your-gitea-server/your-user/your-repo/settings/actions/runners
et vous devriez voir qu’il est déjà en cours d’exécution
Créer quelques secrets AWS
Accédez à : https://your-gitea-server/your-user/your-repo/settings/actions/secrets
Et créez un couple de secrets considérables : AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY. Vous savez ce qu’ils signifient, n’est-ce pas ?

Créer un workflow Gitea pour la compilation et le déploiement de Hugo vers S3
Dans votre projet Hugo, dans le dossier .gitea/workflows, créez un fichier 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 par hasard vous n’avez pas un immense désir d’héberger votre site à Sydney - changez AWS_REGION pour ce que vous préférez de plus.
Ce fragment de configuration :
on:
push:
branches:
- master
s’occupera de toutes les poussées et les fusions vers la branche master.
Commit et push
Après avoir poussé les modifications vers le serveur, vous devriez voir sur la page https://your-gitea-server/your-user/your-repo/actions quelque chose de proche de

Passée une bonne journée ! Une fois votre runner Gitea Actions déployé et en train de compiler votre site, n’oubliez pas que l’instance qui l’exécute a encore besoin de son propre filet de sécurité - consultez Sauvegarde et restauration du serveur Gitea pour le flux de travail gitea dump.