Настройка Gitea Actions для автоматической сборки
📋 Предварительные требования
1. Gitea с поддержкой Actions
Убедитесь, что ваш Gitea имеет включенные Actions:
# В app.ini Gitea
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://gitea.com
2. Gitea Runner
Установите и настройте Gitea Act Runner:
# Скачать runner
wget https://dl.gitea.com/act_runner/latest/act_runner-linux-amd64 -O act_runner
chmod +x act_runner
# Зарегистрировать runner
./act_runner register --no-interactive \
--instance https://your-gitea-instance.com \
--token YOUR_RUNNER_TOKEN \
--name my-runner
# Запустить runner
./act_runner daemon
Или через Docker:
docker run -d \
--name gitea-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $PWD/runner-data:/data \
-e GITEA_INSTANCE_URL=https://your-gitea-instance.com \
-e GITEA_RUNNER_REGISTRATION_TOKEN=YOUR_TOKEN \
gitea/act_runner:latest
🚀 Использование
Создание релиза автоматически
- Создайте и отправьте тег:
# Создать тег
git tag -a v1.0.0 -m "Release version 1.0.0"
# Отправить тег на сервер
git push origin v1.0.0
- Gitea автоматически:
- Запустит workflow
.gitea/workflows/release.yml - Соберет Linux версию на Ubuntu runner
- Соберет Windows версию на Windows runner
- Создаст релиз с артефактами
- Добавит контрольные суммы SHA256 и MD5
- Запустит workflow
Ручной запуск workflow
В веб-интерфейсе Gitea:
- Перейдите в Repository → Actions
- Выберите workflow Build and Release
- Нажмите Run workflow
- Укажите версию (опционально)
📂 Структура workflows
.gitea/
└── workflows/
├── build-release.yml # Простой workflow (совместим с GitHub)
└── release.yml # Расширенный workflow с уведомлениями
build-release.yml
Базовый workflow, совместимый с GitHub Actions:
- Сборка для Linux и Windows
- Создание пакетов
- Генерация контрольных сумм
- Создание релиза
Использование:
git tag v1.0.0
git push origin v1.0.0
release.yml
Расширенный workflow с дополнительными возможностями:
- Детальные release notes
- MD5 + SHA256 checksums
- Уведомления после релиза
- Поддержка ручного запуска
Использование:
# Автоматически при теге
git tag v1.0.0
git push origin v1.0.0
# Или вручную через веб-интерфейс
🔧 Настройка
Переменные окружения
Workflow использует следующие переменные:
| Переменная | Описание | Где установить |
|---|---|---|
GITEA_TOKEN |
Токен для создания релиза | Repository Secrets |
GITHUB_TOKEN |
Автоматически (fallback) | Встроенный |
Создание GITEA_TOKEN
- В Gitea: Settings → Applications → Generate New Token
- Выберите права:
repo,write:packages - Скопируйте токен
- В репозитории: Settings → Secrets → Add Secret
- Name:
GITEA_TOKEN - Value: ваш токен
- Name:
📦 Артефакты релиза
После успешной сборки в релизе будут доступны:
letsencrypt-regru-linux-x86_64.tar.gz
letsencrypt-regru-linux-x86_64.tar.gz.sha256
letsencrypt-regru-linux-x86_64.tar.gz.md5
letsencrypt-regru-windows-x86_64.zip
letsencrypt-regru-windows-x86_64.zip.sha256
letsencrypt-regru-windows-x86_64.zip.md5
🐛 Troubleshooting
Workflow не запускается
Проблема: После push тега workflow не запускается
Решение:
- Проверьте, что Actions включены в настройках репозитория
- Проверьте
.gitea/workflows/*.ymlна синтаксические ошибки - Убедитесь, что runner зарегистрирован и запущен
# Проверить статус runner
./act_runner status
# Посмотреть логи runner
./act_runner daemon --debug
Ошибка при сборке Windows
Проблема: make: command not found на Windows
Решение:
Установите Make для Windows или используйте альтернативный workflow:
- name: Build Windows executable (без make)
run: |
pyinstaller --onefile --name letsencrypt-regru letsencrypt_regru_api.py
Релиз создается без файлов
Проблема: Релиз создан, но артефакты отсутствуют
Решение:
Проверьте логи job create-release:
- Перейдите в Actions → Build and Release → create-release
- Проверьте шаг "Download artifacts"
- Убедитесь, что предыдущие jobs (
build-linux,build-windows) завершились успешно
Permission denied при создании релиза
Проблема: Error: Resource not accessible by integration
Решение:
-
Проверьте права токена:
GITEA_TOKENдолжен иметь праваrepoиwrite:packages
-
Или используйте встроенный
GITHUB_TOKEN:- Убедитесь, что в настройках репозитория включены Actions
📊 Мониторинг сборок
Просмотр логов
-
Web UI:
- Repository → Actions
- Выберите workflow run
- Кликните на job для просмотра логов
-
API:
curl -H "Authorization: token YOUR_TOKEN" \ https://your-gitea.com/api/v1/repos/USER/REPO/actions/runs
Статус badges
Добавьте в README.md:
[](https://your-gitea.com/USER/REPO/actions)
🔄 Автоматизация релизов
Semantic Versioning
Используйте теги с семантическим версионированием:
# Major release (несовместимые изменения)
git tag v2.0.0
# Minor release (новые функции)
git tag v1.1.0
# Patch release (исправления)
git tag v1.0.1
Pre-release
Для тестовых релизов используйте suffix:
git tag v1.0.0-beta.1
git tag v1.0.0-rc.1
В workflow автоматически будет установлен prerelease: true для таких тегов.
📝 Changelog автоматизация
Использование conventional commits
git commit -m "feat: добавлена поддержка wildcard сертификатов"
git commit -m "fix: исправлена ошибка загрузки в NPM"
git commit -m "docs: обновлена документация"
Генерация CHANGELOG.md
Добавьте в workflow:
- name: Generate Changelog
run: |
git log $(git describe --tags --abbrev=0)..HEAD --pretty=format:"- %s" > CHANGELOG.md
🎯 Рекомендации
-
Используйте теги только для стабильных релизов
- Тестируйте перед созданием тега
- Проверяйте сборку локально:
make release
-
Проверяйте контрольные суммы
- Всегда включайте SHA256 и MD5
- Документируйте процесс проверки для пользователей
-
Версионирование
- Следуйте семантическому версионированию
- Документируйте breaking changes
-
Тестирование
- Запускайте workflow вручную перед тегированием
- Проверяйте артефакты после сборки
🔗 Полезные ссылки
Примечание: Эти workflows совместимы с GitHub Actions и могут использоваться на обеих платформах.