savagedb_bot/wiki/Gitea-Actions.md

3.3 KiB
Raw Blame History

Система автоматической сборки Docker образов через Gitea Actions.

Обзор workflow

В проекте настроены четыре workflow для автоматической сборки:

Workflow Назначение Registry
docker-build.yml Публикация в Docker Hub docker.io
docker-build-local.yml Публикация в Harbor/локальный registry Настраиваемый
docker-build-test.yml Только тестирование сборки Без registry
pull-request-check.yml Проверка Pull Request Без registry

Быстрая настройка

1. Включить Actions в Gitea

# app.ini
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://gitea.com

2. Настроить Secrets

Docker Hub

  • DOCKER_USERNAME - логин Docker Hub
  • DOCKER_PASSWORD - токен доступа

Harbor/Локальный Registry

  • DOCKER_REGISTRY_URL - адрес registry (reg.ddl.su)
  • DOCKER_REGISTRY_PROJECT - проект Harbor (salvage_bot)
  • DOCKER_REGISTRY_USERNAME - логин (robot account)
  • DOCKER_REGISTRY_PASSWORD - токен

Триггеры сборки

Автоматические

  • Push в main/develop → создает образы latest, main, develop
  • Теги v* → создает семантические версии (1.0.0, 1.0, 1, latest)
  • Pull Request → тестирует сборку, создает тег pr-XXX

Ручной запуск

  • Через веб-интерфейс Gitea Actions
  • Возможность указать произвольный тег

Результат сборки

Docker Hub

docker.io/YOUR_USERNAME/salvagedb-bot:latest

Harbor Registry

reg.ddl.su/salvage_bot/salvagedb-bot:latest

Использование образов

Docker Run

docker run -d --name salvagedb-bot \
  --env-file .env \
  reg.ddl.su/salvage_bot/salvagedb-bot:latest

Docker Compose

services:
  bot:
    image: reg.ddl.su/salvage_bot/salvagedb-bot:latest
    env_file: .env
    restart: unless-stopped

Решение проблем

"Username and password required"

  1. Проверьте настройку всех необходимых secrets
  2. Убедитесь в правильности имен secrets
  3. Используйте robot account для Harbor

Ошибки авторизации Harbor

  1. Создайте robot account в Harbor UI
  2. Используйте формат robot$username
  3. Проверьте права на Push Artifact

Проблемы сборки

  1. Используйте docker-build-test.yml для локального тестирования
  2. Проверьте валидность Dockerfile
  3. При необходимости обратитесь к Harbor-Registry

Дополнительные возможности

  • Кэширование Docker слоев
  • Мультиплатформенная сборка (Docker Hub)
  • Валидация безопасности
  • Автоматическое тестирование

Подробная конфигурация описана в Harbor-Registry.