Gitea Actionsを使用してHugoサイトをAWS S3にデプロイする
「AWS S3上でGiteaとHugoを設定した後…」
次のステップは、CI/CDを実装し、設定することです。 マスターブランチが更新された際に、WebサイトをAWS S3へ自動プッシュするためのGitea Actions for Hugo website
Giteaのインストール、設定、テスト、およびGiteaのSSL設定を完了した後、すでにHugoサイトのAWS S3へのデプロイを設定しました。
本ガイドは、AWSデプロイ戦略をカバーする当社のWebインフラストラクチャ文書の一部です。CloudFrontディストリビューションの設定については、従量課金制でのCloudFront作成(無料プランの代わりに)をご参照ください。また、代替のデプロイアプローチとして、AWS CLIによるHugoのデプロイも検討できます。

はい。始めましょう。
Giteaランナー用の新しいトークン生成
https://your-gitea-server/your-user/your-repo/settings/actions/runners にアクセスし、
Create New Runner(新しいランナーを作成)をクリックしてください。

登録トークン(Registration Token)をコピーしてください。
新しいGiteaランナーの開始
新しいGiteaランナーを実行するサーバーにSSH接続し、Dockerコンテナを起動します。 単体の実行ファイルとして起動したり、サービスとして実行したりする方法もありますが、ここでは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
ランナーが正常に登録されたかを確認する
https://your-gitea-server/your-user/your-repo/settings/actions/runners にアクセスしてください。 すでに実行中になっていることが確認できるはずです。
いくつかのAWSシークレットを作成する
以下に移動します: https://your-gitea-server/your-user/your-repo/settings/actions/secrets
ここで、いくつかの重要なシークレットを作成します: AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY。意味はご存知ですよね?

HugoをS3にビルド&デプロイするためのGiteaワークフロー作成
Hugoプロジェクトの .gitea/workflows フォルダ内にある 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 }}."
もしシドニー(オーストラリア)にサイトをホストしたいという大きなこだわりがない場合、AWS_REGION を好みに合わせて変更してください。
この設定部分:
on:
push:
branches:
- master
が、マスターブランチへのすべてのプッシュとマージに対応します。
コミットしてプッシュする
サーバーへ変更をプッシュした後、https://your-gitea-server/your-user/your-repo/actions ページで以下のような内容が表示されるはずです。

良い一日をお過ごしください!Gitea Actionsランナーがデプロイされ、サイトがビルドされ始めたら、それを実行しているインスタンス自体にも専用のセーフティネット(バックアップ)が必要なことを忘れないでください。 gitea dump ワークフローについては、Giteaサーバーのバックアップと復元 をご確認ください。