Автоматизация пересборки зависимых пакетов при обновлении библиотек в Росе

(Эта статья будет дописываться) Как составить список пакетов для пересборки, смотрите статью №698. Нужно сделать текстовый файл с построчным списком пакетов. Предположим, что этот файл называется krb5.list .

На ABF я уже создавал группу «corp_test» для пакетов. Вы можете создать свою группу или клонировать в личный репозиторий, совпадающий с вашим логином.
И так, форкнем все пакеты из списка из import в corp_test:
for i in `cat krb5.list` ; do abf fork import/$i corp_test/$i ; done

Далее на компьютере создаю директорию, куда буду клонировать проекты. Клонирую в нее все необходимые проекты и сразу вношу изменения в настройки git в каждом из них:
for i in $(cat krb5.list) ; do git clone git@abf.io:corp_test/$i.git -b rosa2016.1 ; pushd $i ; git config user.email vasya@pupkin.ru ; popd ; done

Для пересборки нужно во всех пакетах повысить релиз на 1. Смотрю, какие релизы стоят сейчас, получаю список уникальных вариантов:
( for i in $(cat krb5.list); do cat $i/*.spec | grep ^Release | awk '{print $2}' ; done ) | sort -u

Получилось вот так:

0.%{checkout}.1
0.%{pre}.2
1
10
11
14
2
29
3
4
5
6
7
8
9
%release

Тут сложно как-то автоматизировать, поэтому закрываю в своем любимом текстовом редакторе Geany открытые вкладки, проверяю, что до выполнения команды ниже Geany уже открыт, и делаю:
find -type f -iname "*.spec" -exec geany {} \;
Это открыло все спеки в Geany. Теперь в каждом вручную поднимаю релиз, сохраняю (ctrl+s), закрываю вкладку со спеком (ctrl+w).

Теперь закоммичиваем и пушим на сервер изменения во всех git-репозиториях:
for i in $(cat krb5.list); do pushd $i ; git add . ; git commit -m 'Rebuild with krb5-1.16.2'; git push ; popd; done

Теперь нужно запустить сборку всех этих пакетов.
Как это сделать через CLI abf, не понял, не работает, поэтому сделаем через веб-интерфейс ABF.

Идем по адресу вида https://abf.io/platforms/corp_test_personal/mass_builds, где corp_test — это ваш репозиторий или ваш логин. Создаем новую массовую сборку.
Вставляем список пакетов из файла krb5.list.
В «Дополнительные репозитории» добавляем свой репозиторий, я просто начал набирать: «corp_test», дальше автоматически вылезла подсказка. Выбираем правильные архитектуры и платформу. У меня получилось вот так:

Нажимаем «Начать сборку». Пакеты постепенно появляются в Мониторинге задач.

Отправить ответ

avatar
  Subscribe  
Сообщать по почте