Wdrażanie witryny Hugo na AWS S3 przy użyciu Gitea Actions
Po ustawieniu Gitea i Hugo na AWS S3...
Następnym krokiem jest zaimplementowanie niektórych CI/CD i ustawienie Gitea Actions for Hugo website, to push website to AWS S3 automatycznie, gdy zostanie zaktualizowana gałąź master.
Już mamy – po zainstalowaniu, skonfigurowaniu i przetestowaniu Gitea Gitea Server Setup, oraz ustawieniu Gitea SSL, skonfigurowaliśmy Hugo website deployment to AWS S3.
OK. Idźmy dalej
Wygeneruj nowy token dla Gitea runner
Przejdź do https://your-gitea-server/your-user/your-repo/settings/actions/runners
i kliknij Create New Runner
skopiuj Registration Token
Uruchom nowy Gitea Runner
ssh do serwera, na którym będzie działać nowy gitea runner
i uruchom kontener docker. możesz uruchomić go jako osobny wykonywalny plik, uruchomić jako usługę itd., ale tutaj korzystam z kontenera 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
Sprawdź, czy runner został poprawnie zarejestrowany
Przejdź do https://your-gitea-server/your-user/your-repo/settings/actions/runners
i powinieneś zobaczyć, że już działa
Utwórz kilka sekretów AWS
Przejdź do: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
I utwórz kilka dużych sekretów: AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY. Wiesz, co one oznaczają, prawda?
Utwórz Gitea Workflow do budowania i wdrażania Hugo na s3
W swoim projekcie Hugo, w folderze .gitea/workflows
utwórz plik 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 }}."
Jeśli z jakiegoś powodu nie masz ogromnego pragnienia, aby hostować swoje strony w Sydney – zmień AWS_REGION na to, co bardziej Ci się podoba.
Ten fragment konfiguracji:
on:
push:
branches:
- master
zadbaje o wszystkie pushy i merge’y do gałęzi master.
Zatwierdź i wypchnij zmiany
Po wypchnięciu zmian do serwera powinieneś zobaczyć na stronie https://your-gitea-server/your-user/your-repo/actions coś podobnego do
Mam nadzieję, że masz świetny dzień!
Przydatne linki
- Wdrażanie strony wygenerowanej przez Hugo na AWS S3
- Wysyłanie formularza Google w witrynie Hugo
- Hugo Cheat Sheet
- Najpopularniejsze motywy dla Hugo
- Konfiguracja obrazów w motywie Mainroad
- Markdown Cheat Sheet
- Konfiguracja serwera Gitea
- Konfiguracja SSL dla Gitea
- Ponowne zainstalowanie systemu Linux
- Bash Cheat Sheet
- Hugo Space
- Jak przechowywać obrazy miniatur w folderze page bundle dla witryn Hugo z motywem Mainroad