Usando Gitea Actions para implantar um site Hugo no AWS S3
Depois de definir upd o Gitea e o Hugo no AWS S3...
O próximo passo é implementar alguma CI/CD e configurar Gitea Actions para o site Hugo, para enviar o site automaticamente para o AWS S3 quando a branch master for atualizada.
Já temos - após instalar, configurar e testar o Gitea Configuração do Servidor Gitea, e Configuração do SSL do Gitea, configuramos o desenvolvimento do site Hugo para o AWS S3.
Este guia faz parte da nossa documentação de infraestrutura web cobrindo estratégias de implantação AWS. Para configurar a distribuição do CloudFront, veja criando CloudFront por uso pago em vez do gratuito. Você também pode explorar implantando Hugo com AWS CLI para abordagens alternativas de implantação.

Tudo bem. Vamos lá
Gerar novo token para o runner do Gitea
Navegue até https://your-gitea-server/your-user/your-repo/settings/actions/runners
e clique em Create New Runner

Copie o Registration Token
Iniciar novo Gitea Runner
Faça ssh para o servidor onde seu novo gitea runner estará rodando
e inicie o container docker. Você pode iniciá-lo como um executável separado, executá-lo como um serviço, etc., mas aqui estou usando um 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
Verificar se o runner foi registrado corretamente
Navegue até https://your-gitea-server/your-user/your-repo/settings/actions/runners
e você deve ver que ele já está rodando
Criar alguns segredos do AWS
Vá para: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
E crie alguns segredos enormes: AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY. Você sabe o que eles significam, certo?

Criar Workflow Gitea para compilar e implantar Hugo para s3
No seu projeto hugo, na pasta .gitea/workflows crie um arquivo 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 }}."
Se por algum motivo você não tiver um grande desejo de hospedar seu site em Sydney - mude AWS_REGION para o que você preferir.
Este trecho de configuração:
on:
push:
branches:
- master
cuidará de todos os pushes e merges para a branch master.
Commitar e push
Após enviar as alterações para o servidor, você deve ver na página https://your-gitea-server/your-user/your-repo/actions algo próximo de

Tenha um ótimo dia! Depois que seu runner do Gitea Actions estiver implantado e compilando seu site, não se esqueça de que a instância que o executa ainda precisa da sua própria rede de segurança - veja Backup e Restore do servidor Gitea para o fluxo de trabalho gitea dump.