Utilizzare Gitea Actions per distribuire un sito web Hugo su AWS S3
Dopo aver configurato Gitea e Hugo su AWS S3...
Il passo successivo è implementare alcuni CI/CD e configurare Gitea Actions per il sito Hugo, per spostare il sito su AWS S3 automaticamente quando la branch master viene aggiornata.
Abbiamo già - dopo l’installazione, la configurazione e i test di Gitea Configurazione del server Gitea, e Configurazione SSL per Gitea, configurato Deploy del sito Hugo su AWS S3.
OK. Andiamo avanti
Genera un nuovo token per il runner di Gitea
Naviga su https://your-gitea-server/your-user/your-repo/settings/actions/runners
e clicca su Crea nuovo runner
copia il token di registrazione
Avvia un nuovo runner di Gitea
ssh sul server dove verrà eseguito il nuovo runner di Gitea
e avvia il container docker. puoi avviarlo come un eseguibile separato, eseguirlo come servizio, ecc., ma qui sto utilizzando un container 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
Verifica che il runner sia registrato correttamente
Naviga su https://your-gitea-server/your-user/your-repo/settings/actions/runners
e dovresti vedere che è già in esecuzione
Crea un paio di segreti AWS
Vai a: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
E crea un paio di segreti importanti: AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY. Lo sai cosa significano, giusto?
Crea un workflow Gitea per costruire e deployare Hugo su S3
Nel tuo progetto Hugo, nella cartella .gitea/workflows
crea un file hugo-deploy.yaml
name: Gitea Actions - Deploy Hugo
run-name: ${{ gitea.actor }} sta testando Gitea Actions 🚀
on:
push:
branches:
- master
jobs:
Hugo-Deploy:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 L'job è stato automaticamente attivato da un evento ${{ gitea.event_name }}."
- run: echo "🐧 Questo job è ora in esecuzione su un server ${{ runner.os }} ospitato da Gitea!"
- run: echo "🔎 Il nome della tua branch è ${{ gitea.ref }} e il tuo repository è ${{ 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 "💡 Il repository ${{ gitea.repository }} è stato clonato sul 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 "🍏 Lo stato di questo job è ${{ job.status }}."
Se per qualche motivo non hai un forte desiderio di ospitare il tuo sito a Sydney - cambia AWS_REGION con quello che preferisci.
Questo frammento di configurazione:
on:
push:
branches:
- master
si occuperà di tutti i push e i merge nella branch master.
Commit e push
Dopo aver spinto i cambiamenti al server, dovresti vedere sulla pagina https://your-gitea-server/your-user/your-repo/actions qualcosa di simile a
Buona giornata!
Link utili
- Deploy del sito generato da Hugo su AWS S3
- Inserisci un modulo Google in un sito Hugo
- Scheda di riferimento per Hugo
- Temi più popolari per Hugo
- Gestione immagini del tema Mainroad
- Scheda di riferimento per Markdown
- Configurazione del server Gitea
- Configurazione SSL per Gitea
- Riinstalla Linux
- Scheda di riferimento per Bash
- Hugo Space
- Come archiviare immagini miniature nella cartella del bundle delle pagine per siti Hugo con tema Mainroad