Menggunakan Gitea Actions untuk mendeploy situs web Hugo ke AWS S3

Setelah mengatur Gitea dan Hugo di AWS S3...

Konten Halaman

Langkah berikutnya adalah menerapkan beberapa CI/CD dan mengatur Gitea Actions untuk situs web Hugo, untuk mendorong situs web ke AWS S3 secara otomatis ketika cabang master diperbarui.

Kami sudah - setelah menginstal, mengonfigurasi, dan menguji Gitea Pengaturan Server Gitea, dan mengatur SSL Gitea, mengonfigurasi penyebaran situs web Hugo ke AWS S3.

Gitea Runner

Baik. Mari kita mulai

Buat token baru untuk Gitea runner

Navigasi ke https://your-gitea-server/your-user/your-repo/settings/actions/runners

dan klik Buat Runner Baru

Buat Runner Baru

salin Token Pendaftaran

Mulai runner Gitea baru

ssh ke server di mana runner Gitea baru Anda akan berjalan

dan mulai kontainer docker. Anda dapat memulainya sebagai eksekutable terpisah, jalankan sebagai layanan dll, tetapi di sini saya menggunakan kontainer 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

Periksa apakah runner terdaftar dengan baik

Navigasi ke https://your-gitea-server/your-user/your-repo/settings/actions/runners

dan Anda harus melihat bahwa sudah berjalan

Buat beberapa rahasia AWS

Pergi ke: https://your-gitea-server/your-user/your-repo/settings/actions/secrets

Dan buat beberapa rahasia besar: AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY. Anda tahu artinya, kan?

aws-secrets

Buat alur kerja Gitea untuk membangun dan menyebarluaskan Hugo ke s3

Di proyek Hugo Anda, dalam folder .gitea/workflows buat file hugo-deploy.yaml

name: Gitea Actions - Hugo Deploy
run-name: ${{ gitea.actor }} sedang menguji Gitea Actions 🚀
on:
  push:
    branches:
      - master
jobs:
  Hugo-Deploy:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 Tugas ini secara otomatis diaktifkan oleh acara ${{ gitea.event_name }}."
      - run: echo "🐧 Tugas ini sekarang berjalan di server ${{ runner.os }} yang dihosting oleh Gitea!"
      - run: echo "🔎 Nama cabang Anda adalah ${{ gitea.ref }} dan repositori Anda adalah ${{ gitea.repository }}."

      - name: Cek kode repositori
        uses: actions/checkout@v4
        with:
          submodules: true  # Unduh tema Hugo (true atau rekursif)
          fetch-depth: 0    # Unduh semua sejarah untuk .GitInfo dan .Lastmod

      - run: echo "💡 Repositori ${{ gitea.repository }} telah diklon ke runner."

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: '0.134.1' # atau hapus ini untuk versi terbaru
          extended: true

      - name: Daftar file dalam repositori
        run: |
          ls

      - name: Bangun
        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 "🍏 Status tugas ini adalah ${{ job.status }}."

Jika suatu saat Anda tidak memiliki keinginan besar untuk menghosting situs Anda di Sydney - ubah AWS_REGION menjadi apa pun yang Anda sukai.

Konfigurasi ini:

on:
  push:
    branches:
      - master

akan mengurus semua push dan merge ke cabang master.

Commit dan push

Setelah mendorong perubahan ke server Anda seharusnya melihat di halaman https://your-gitea-server/your-user/your-repo/actions sesuatu yang mirip dengan

hugo-deploy-log-gitea-actions

Selamat hari yang menyenangkan!

Tautan yang berguna