Gebruik Gitea Actions om een Hugo-website te implementeren in AWS S3
Na het instellen van Gitea en Hugo op AWS S3...
De volgende stap is het implementeren van enige CI/CD en het instellen van
Gitea Actions voor Hugo website, om website naar AWS S3 te pushen
automatisch wanneer de master branch wordt bijgewerkt.
We hebben al - na het installeren, configureren en testen van Gitea Gitea Server Setup,
en het instellen van Gitea SSL,
geconfigureerd Hugo website deployment naar AWS S3.
OK. Laten we beginnen
Genereer een nieuw token voor de Gitea runner
Navigeer naar https://your-gitea-server/your-user/your-repo/settings/actions/runners
en klik op Create New Runner
kopieer het registratie token
Start een nieuwe Gitea Runner
ssh naar de server waarop je nieuwe Gitea runner zal draaien
en start de docker container. je kunt het als een aparte uitvoerbare bestand starten, het als een service draaien, etc, maar hier gebruik ik een 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
Controleer of de runner correct is geregistreerd
Navigeer naar https://your-gitea-server/your-user/your-repo/settings/actions/runners
en je zou moeten zien dat het al draait
Maak een paar AWS geheime waarden aan
Ga naar: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
En maak een paar grote geheime waarden aan: AWS_ACCESS_KEY_ID en AWS_SECRET_ACCESS_KEY. Je weet wat ze betekenen, toch?
Maak een Gitea workflow aan voor het bouwen en implementeren van Hugo naar S3
In je Hugo project, in de map .gitea/workflows
maak een bestand hugo-deploy.yaml
aan
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 }}."
Als je op een of andere manier geen groot verlangen hebt om je site te hosten in Sydney - verander dan AWS_REGION naar wat je liever hebt.
Deze configuratie:
on:
push:
branches:
- master
zorgt ervoor dat alle pushes en merges naar de master branch worden verwerkt.
Commit en push
Na het pushen van de wijzigingen naar de server zou je op de pagina https://your-gitea-server/your-user/your-repo/actions iets moeten zien dat er ongeveer uitziet als
Heb een fijn dagje!
Nuttige links
- Implementeer een Hugo gegenereerde website naar AWS S3
- Indienen van een Google Form op een Hugo website
- Hugo Cheat Sheet
- Populairste thema’s voor Hugo
- Mainroad thema beeldbehandeling
- Markdown Cheat Sheet
- Gitea Server Setup
- Instellen van Gitea SSL
- Herinstallatie Linux
- Bash Cheat Sheet
- Hugo Space
- Hoe je miniaturen opslaat in de pagina bundelmap voor Hugo sites met Mainroad thema