Собственный репозиторий OpenWRT на Gitlab-e
Данная статья поможет создать собственный репозиторий OpenWRT, со сборкой пакетов и хостингом их, средствами Gitlab Pages и CI/CD.
Cоздание пары ключей для подписи пакетов#
- Клонируйте репозиторий usign и скомпилируйте его. Обратите внимание, для успешной компиляции требуется установленный cmake.
- Даем команду исполняемому файлу usign создать новую пару ключей и вводим соответствующий комментарий, чтобы позже можно было идентифицировать файл ключа.
./usign -G -c "My own OpenWRT repo" -s secret.key -p public.key
Ключи готовы, к ним вернемся позже.
Окружение для сборки#
- Подготавливаем папку с репозиторием хранилица пакетов OpenWRT
- Создаем Dockerfile со следующим содержанием:
Где мейнтейнером указываем себя. Устанавливаем необходимые зависимости и в строке, со скачиванием openwrt-sdk, вставляем ссылку на нужную вам архитектуру. 3. Билдим образ и тегируем его
- Заливаем на hub.docker.com
С докером покончено, ждем когда сбилдится на сайте и переходим к Gitlab.
Настройка Gitlab#
- Создаем новый проект
- Переходим в настройки проекта Settings -> CI/CD
И в Variables (переменных) указываем ранее созданные ключи
Где GPG_PRIVATE_KEY - secret.key, GPG_PUBLIC_KEY - public.key. Обратите внимание на символ перевода строки \n после “untrusted comment: My own OpenWRT repo”
- Добавляем в проект файл .gitlab-ci.yml
Где image - имя образа на dockerhub-е, name-of-package - имя вашего пакета, и его репозиторий, name - ваше имя пользователя.
Ждем прохождения тестов и деплоя.
- Переходим в Settings -> Pages тут на ваше усмотрение, можете использовать предложенный адрес или добавить свой домен.
Добавление созданного репозитория#
Логинимся в OpenWRT и выполняем следующее:
Не забудьте указать корректную ссылку на репозиторий, полученную из GitLab Pages.
На этом все!