Пайплайн для деплоя mkdocs средствами gitea
Такс, как и обещал притаранил тебе рабочий пайплайн для авто деплоя mkdocs через gitea.
читать первым в телеграм читать первым в макс
Чтобы всё это заработало, в проекте тебе нужно создать структуру:
.gitea/workflows/deploy.yml
Файл можешь обозвать как угодно.
name: Build and Deploy Bashdays Blog
on:
push:
branches:
- main
jobs:
build:
runs-on: super-runner
container:
image: catthehacker/ubuntu:act-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install dependencies and build
run: |
pip install -r requirements.txt
mkdocs build
- name: Deploy to Server
uses: https://gitea.com/aquelle1/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rlgoDzvc -i --delete"
SOURCE: "site/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_TARGET }}
Разбор полётов
Давай кратенько пробежимся:
Триггер on: push: запускается если что-то запушено в ветку main.
Следом запускается джоба build на раннере super-runner, не забываем зарегать себе раннер, без него нихуя не получится.
Дальше используем адаптированный контейнер с убунтой 22.04 специально адаптированный под тестирование GitHub Actions через act.
Почему GitHub Actions? Потому что gitea унаследовало синтаксис и пайплайны в теории могут переносится между системами.
Потом идут шаги speps, клонируется репозиторий с проектом в контейнер, устанавливаются необходимые зависимости через «пипку», ну и билдится финальная статика.
После сборки идет секция с деплоем, я использую этот экшен. Основан он на rsync поверх ssh.
Забиваем нужные ключи и переменные, которые требуются для работы этого экшена. Переменные определяешь в настройках проекта в gitea в секции secrets.

Описание переменных
Ключей в экшене гораздо больше, у меня приведен необходимый минимум. Про все ключи и свистоперделки этого экшена можешь почитать тут.
Заключение и выводы
main ветку, автоматически запустится пайплайн и на прод выкатятся изменения.В моем случае выкатываются новые посты в markdown. Этот процесс хочу автоматизировать и продублировать все посты из тг канала в блог, сделать наконец нормальную навигацию и поиск. А то чёрт ногу сломит уже, хуй чё найдешь.
Хорошего тебе вечера, теперь уже до завтра!
