Используя Gitea Actions для развертывания сайта Hugo на AWS S3
После настройки Gitea и Hugo на AWS S3...
Следующим шагом будет реализация некоторых CI/CD и настройка
Настройка Gitea Actions для сайта Hugo, чтобы загрузить сайт в AWS S3
автоматически, когда ветка master обновляется.
Нам уже удалось — после установки, настройки и тестирования Gitea Настройка сервера Gitea,
и Настройка SSL для Gitea,
настроить развертывание сайта Hugo на AWS S3.
Хорошо. Давайте начнём
Создание нового токена для runner Gitea
Перейдите по адресу https://your-gitea-server/your-user/your-repo/settings/actions/runners
и нажмите Create New Runner
скопируйте токен регистрации
Запуск нового runner Gitea
ssh на сервер, где будет запущен новый runner Gitea
и запустите контейнер 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
Проверьте, зарегистрирован ли runner
Перейдите по адресу 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. Вы знаете, что они означают, правда?
Создайте workflow Gitea для сборки и развертывания Hugo на s3
В вашем проекте 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
заботиться о всех push и merge в ветку master.
Коммит и отправка
После отправки изменений на сервер вы должны увидеть на странице https://your-gitea-server/your-user/your-repo/actions что-то похожее на
Хорошего дня!
Полезные ссылки
- Развертывание сайта, сгенерированного Hugo, на AWS S3
- Отправка формы Google в веб-сайте Hugo
- Справочник по Hugo
- Наиболее популярные темы для Hugo
- Обработка изображений в теме Mainroad
- Справочник по Markdown
- Настройка сервера Gitea
- Настройка SSL для Gitea
- Переустановка Linux
- Справочник по Bash
- Hugo Space
- Как хранить миниатюрные изображения в папке page bundle для сайтов Hugo с темой Mainroad