Gitea Actions zur Deployment einer Hugo-Website auf AWS S3 verwenden
Nach der Einstellung von Gitea und Hugo auf AWS S3 ...
Der nächste Schritt besteht darin, CI/CD umzusetzen und Gitea Actions für eine Hugo-Website einzurichten, um die Website automatisch auf AWS S3 zu pushen, sobald der Master-Branch aktualisiert wird.
Wir haben bereits – nach der Installation, Konfiguration und dem Testen von Gitea unter Gitea Server Setup, sowie dem Einrichten von Gitea SSL, die Deployment der Hugo-Website auf AWS S3 konfiguriert.
Dieses Handbuch ist Teil unserer Web-Infrastruktur-Dokumentation, die AWS-Deploymentsstrategien abdeckt. Für die Einrichtung der CloudFront-Distribution siehe CloudFront auf Pay-as-you-go-Basis erstellen. Sie können auch die Deployment von Hugo mit der AWS CLI erkunden, für alternative Deployment-Ansätze.

Alles klar. Los geht’s.
Neues Token für Gitea-Runner generieren
Navigieren Sie zu https://your-gitea-server/your-user/your-repo/settings/actions/runners
und klicken Sie auf Create New Runner

Kopieren Sie das Registration Token.
Neuen Gitea-Runner starten
Melden Sie sich per SSH auf dem Server an, auf dem Ihr neuer Gitea-Runner laufen soll.
Starten Sie dann den Docker-Container. Sie können ihn als separates ausführbares Programm starten, als Dienst ausführen usw., aber hier verwende ich einen Docker-Container.
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
Prüfen, ob der Runner korrekt registriert wurde
Navigieren Sie zu https://your-gitea-server/your-user/your-repo/settings/actions/runners
und Sie sollten sehen, dass er bereits läuft.
Ein paar AWS-Geheimnisse erstellen
Gehen Sie zu: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
Und erstellen Sie ein paar große Geheimnisse: AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY. Sie wissen schon, was sie bedeuten, oder?

Gitea-Workflow zum Bauen und Deployen von Hugo auf S3 erstellen
In Ihrem Hugo-Projekt, im Ordner .gitea/workflows, erstellen Sie die Datei 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 }}."
Falls Sie gar keine Lust haben, Ihre Website in Sydney zu hosten, ändern Sie AWS_REGION zu einem beliebigen anderen Wert.
Dieser Konfigurationsblock:
on:
push:
branches:
- master
kümmert sich um alle Pushes und Merges in den Master-Branch.
Commit und Push
Nachdem Sie Änderungen auf den Server gepusht haben, sollten Sie auf der Seite https://your-gitea-server/your-user/your-repo/actions etwas Ähnliches sehen:

Ich wünsche Ihnen einen schönen Tag! Wenn Ihr Gitea-Actions-Runner deployed ist und Ihre Website baut, denken Sie daran, dass die Instanz, die ihn ausführt, auch ein eigenes Sicherheitsnetz benötigt – siehe Backup und Restore des Gitea-Server für den gitea dump-Workflow.