Mit Gitea Actions einen Hugo-Webserver auf AWS S3 bereitstellen

Nachdem Gitea und Hugo auf AWS S3 eingerichtet wurden...

Inhaltsverzeichnis

Der nächste Schritt besteht darin, einige CI/CD-Tools zu implementieren und Gitea Actions für die Hugo-Website, um die Website automatisch auf AWS S3 zu pushen einzurichten, sobald der Master-Branch aktualisiert wird.

Wir haben bereits – nach der Installation, Konfiguration und dem Testen des Gitea-Servers Gitea Server Setup, und Einrichten von Gitea SSL, Einrichtung der Hugo-Website-Deployment auf AWS S3.

Gitea Runner

OK. Los geht’s

Neuen Token für den Gitea Runner generieren

Navigieren Sie zu https://your-gitea-server/your-user/your-repo/settings/actions/runners

und klicken Sie auf Create New Runner

Create New Runner

kopieren Sie den Registrierungstoken

Neuen Gitea Runner starten

ssh auf den Server, auf dem der neue Gitea Runner laufen wird

und starten Sie den Docker-Container. Sie können ihn als separates Ausführbares starten, ihn als Dienst laufen lassen usw., aber hier verwende ich einen 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

Prüfen, ob der Runner erfolgreich registriert wurde

Navigieren Sie zu https://your-gitea-server/your-user/your-repo/settings/actions/runners

und Sie sollten sehen, dass er bereits läuft

Ein paar AWS-Secrets erstellen

Gehen Sie zu: https://your-gitea-server/your-user/your-repo/settings/actions/secrets

und erstellen Sie ein paar große Geheimnisse: AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY. Sie wissen, was sie bedeuten, oder?

aws-secrets

Gitea-Workflow für das Erstellen und Deployen von Hugo auf S3 erstellen

In Ihrem Hugo-Projekt, in dem Ordner .gitea/workflows erstellen Sie eine Datei hugo-deploy.yaml

name: Gitea Actions - Hugo Deploy
run-name: ${{ gitea.actor }} testet Gitea Actions 🚀
on:
  push:
    branches:
      - master
jobs:
  Hugo-Deploy:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 Der Job wurde automatisch durch ein ${{ gitea.event_name }} Ereignis ausgelöst."
      - run: echo "🐧 Dieser Job läuft jetzt auf einem ${{ runner.os }} Server, der von Gitea gehostet wird!"
      - run: echo "🔎 Der Name Ihres Branches ist ${{ gitea.ref }} und Ihr Repository ist ${{ gitea.repository }}."

      - name: Repository-Code auschecken
        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 "💡 Das ${{ gitea.repository }} Repository wurde auf den Runner geklont."

      - name: Hugo einrichten
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: '0.134.1' # oder entfernen Sie dies für die neueste Version
          extended: true

      - name: Dateien im Repository auflisten
        run: |
          ls          

      - name: Bauen
        run: hugo

      - name: Deployen
        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 "🍏 Der Status dieses Jobs ist ${{ job.status }}."

Falls Sie aus irgendeinem Grund nicht sehr stark den Wunsch haben, Ihre Website in Sydney zu hosten – ändern Sie AWS_REGION einfach in etwas, das Ihnen besser gefällt.

Dieser Konfigurationsabschnitt:

on:
  push:
    branches:
      - master

wird dafür sorgen, dass alle Push- und Merge-Operationen in den Master-Branch abgefangen werden.

Ändern und Pushen

Nachdem Sie die Änderungen auf den Server gepusht haben, sollten Sie auf der Seite https://your-gitea-server/your-user/your-repo/actions etwas in der Nähe von

hugo-deploy-log-gitea-actions

sehen.

Haben Sie einen wunderbaren Tag!