Använda Gitea Actions för att distribuera en Hugo-website till AWS S3
Efter att ha konfigurerat Gitea och Hugo på AWS S3...
Nästa steg är att implementera någon CI/CD och konfigurera Gitea Actions för Hugo-webbplats, för att automatiskt skicka webbplatsen till AWS S3 när huvudgrenen uppdateras.
Vi har redan - efter installation, konfiguration och testning av Gitea Gitea Server Setup, och konfiguration av Gitea SSL, konfigurerat Hugo-webbplatsdistribution till AWS S3.

OK. Låt oss börja
Generera ny token för Gitea runner
Gå till https://din-gitea-server/din-användare/din-repo/inställningar/actions/runners
och klicka på Skapa ny runner

kopiera Registrerings Token
Starta ny Gitea Runner
SSH till servern där din nya gitea runner ska köras
och starta docker container. du kan starta den som en separat exekverbar fil, köra den som en tjänst etc, men här använder jag en docker container.
sudo docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-e GITEA_INSTANCE_URL=http://<min-gitea-server>:3000/ \
-e GITEA_RUNNER_REGISTRATION_TOKEN=<min-registreringstoken> \
-e GITEA_RUNNER_NAME=srv-act-runner \
--name my_runner \
--restart always \
-d docker.io/gitea/act_runner:latest
Kontrollera att runnern registrerades OK
Gå till https://din-gitea-server/din-användare/din-repo/inställningar/actions/runners
och du bör se att den redan körs
Skapa ett par AWS hemligheter
Gå till: https://din-gitea-server/din-användare/din-repo/inställningar/actions/hemligheter
Och skapa ett par stora hemligheter: AWS_ACCESS_KEY_ID och AWS_SECRET_ACCESS_KEY. Du vet vad de betyder, eller hur?

Skapa Gitea Workflow för att bygga och distribuera Hugo till s3
I ditt Hugo-projekt, i mappen .gitea/workflows skapa en fil hugo-deploy.yaml
name: Gitea Actions - Hugo Deploy
run-name: ${{ gitea.actor }} testar Gitea Actions 🚀
on:
push:
branches:
- master
jobs:
Hugo-Deploy:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 Jobbet startades automatiskt av en ${{ gitea.event_name }} händelse."
- run: echo "🐧 Detta jobb körs nu på en ${{ runner.os }} server som är värd för Gitea!"
- run: echo "🔎 Namnet på din gren är ${{ gitea.ref }} och ditt repository är ${{ gitea.repository }}."
- name: Checka ut repositorykod
uses: actions/checkout@v4
with:
submodules: true # Hämta Hugo-teman (true ELLER recursive)
fetch-depth: 0 # Hämta all historia för .GitInfo och .Lastmod
- run: echo "💡 ${{ gitea.repository }} repository har klonats till runnern."
- name: Konfigurera Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: '0.134.1' # eller ta bort detta för den senaste
extended: true
- name: Lista filer i repositoryt
run: |
ls
- name: Bygg
run: hugo
- name: Distribuera
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 "🍏 Jobbets status är ${{ job.status }}."
Om du av någon anledning inte har ett stort begär att värd för din webbplats i Sydney - ändra AWS_REGION till vad du föredrar.
Den här konfigurationen:
on:
push:
branches:
- master
tar hand om alla push och sammanslagningar till huvudgrenen.
Committa och skicka
Efter att ha skickat ändringar till servern bör du se på sidan https://din-gitea-server/din-användare/din-repo/actions något som liknar

Ha en bra dag!
Användbara länkar
- Distribuera Hugo-genererad webbplats till AWS S3
- Skicka Google Formulär i Hugo-webbplats
- Hugo Cheat Sheet
- De mest populära temana för Hugo
- Mainroad theme image hantering
- Markdown Cheatsheet
- Gitea Server Setup
- Konfigurera Gitea SSL
- Reinstallera linux
- Bash Cheat Sheet
- Hugo Space
- Hur man lagrar miniatyrbilder i sidan bundle mapp för Hugo-webbplatser med Mainroad tema