SrpmToGitTry: различия между версиями
(Use git remote) |
(9.5: "test your build" (also minor formatting)) |
||
(не показаны 4 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
== Как собрать пакет на git.alt, если есть srpm или tgz+spec. == | == Как собрать пакет на git.alt, если есть srpm или tgz+spec. == | ||
Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член | Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член Alt Linux Team (или как минимум добрались до п.2.3 регламента) и Вам выданы ssh- и gpg-ключи. | ||
1. В ~/.ssh/config добавляем | 1. В ~/.ssh/config добавляем сервера gitery и gyle и настраиваем git config. Как это делать - см. [[Git.alt/Справочник#SSH-доступ]]. | ||
2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?). | 2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?). | ||
Строка 25: | Строка 10: | ||
3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать. | 3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать. | ||
$ ssh | $ ssh gitery init-db pakname | ||
4. Инициализируем git локально: | 4. Инициализируем git локально: | ||
Строка 32: | Строка 17: | ||
5. Теперь нужно настроить git: | 5. Теперь нужно настроить git: | ||
$ git remote add origin | $ git remote add origin ssh://gitery:/people/$USER/packages/$PAKNAME.git | ||
Здесь | Здесь $USER - наше имя (без префикса "alt_"), а $PAKNAME - имя репозитория, выбранное нами ранее. | ||
7. Теперь надо подготовить содержимое каталога. '''Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты.''' | 7. Теперь надо подготовить содержимое каталога. '''Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты.''' | ||
Строка 43: | Строка 28: | ||
8. Добавляем тег к сборке: | 8. Добавляем тег к сборке: | ||
$ gear-create-tag | $ gear-create-tag | ||
P.S. Он может сказать "fatal: tag '....' already exists", тогда просто пропускаем этот шаг; похоже, gear-srpmimport это делает автоматически | |||
9. Отправляем изменения на сервер | 9. Отправляем изменения на сервер | ||
Строка 48: | Строка 34: | ||
$ git push --tags | $ git push --tags | ||
10. Если всё ОК, запрашиваем сборку: | 9,5. Если сомневаемся, можно проверить, всё ли хорошо собирается: | ||
$ ssh | $ gear-hsh | ||
10. Если всё ОК, запрашиваем сборку (если у нас есть доступ к gyle): | |||
$ ssh gyle build pakname pakname-version | |||
Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега. | Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега. | ||
11. Теперь можно посмотреть статус Ваших сборок: | 11. Теперь можно посмотреть статус Ваших сборок: | ||
$ ssh | $ ssh gyle task ls | ||
Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10. | Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10. | ||
$ git push | $ git push | ||
$ ssh | $ ssh gyle build pakname pakname-version | ||
Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить: | Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить: | ||
$git commit -a | $ git commit -a | ||
Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл. | Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл. | ||
Строка 70: | Строка 57: | ||
Если Вы хотите собрать другой пакет, выполните пп. 2-10. | Если Вы хотите собрать другой пакет, выполните пп. 2-10. | ||
'''Хорошо бы сюда вставить ссылки на | '''Хорошо бы сюда вставить ссылки на [[Git.alt/Справочник]], [[Git.alt/Краткое_руководство]], [[hasher]] и другие полезные вещи.''' | ||
[[Категория:Git.alt]] | [[Категория:Git.alt]] |
Текущая версия от 23:22, 9 марта 2022
Как собрать пакет на git.alt, если есть srpm или tgz+spec.
Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член Alt Linux Team (или как минимум добрались до п.2.3 регламента) и Вам выданы ssh- и gpg-ключи.
1. В ~/.ssh/config добавляем сервера gitery и gyle и настраиваем git config. Как это делать - см. Git.alt/Справочник#SSH-доступ.
2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?).
$ mkdir pakname $ cd pakname
3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать.
$ ssh gitery init-db pakname
4. Инициализируем git локально:
$ git init
5. Теперь нужно настроить git:
$ git remote add origin ssh://gitery:/people/$USER/packages/$PAKNAME.git
Здесь $USER - наше имя (без префикса "alt_"), а $PAKNAME - имя репозитория, выбранное нами ранее.
7. Теперь надо подготовить содержимое каталога. Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты. Я делал так:
gear-srpmimport path-to/pakname.srpm
При этом у меня был проверенный заранее в хешере srpm.
8. Добавляем тег к сборке:
$ gear-create-tag
P.S. Он может сказать "fatal: tag '....' already exists", тогда просто пропускаем этот шаг; похоже, gear-srpmimport это делает автоматически
9. Отправляем изменения на сервер
$ git push $ git push --tags
9,5. Если сомневаемся, можно проверить, всё ли хорошо собирается:
$ gear-hsh
10. Если всё ОК, запрашиваем сборку (если у нас есть доступ к gyle):
$ ssh gyle build pakname pakname-version
Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега.
11. Теперь можно посмотреть статус Ваших сборок:
$ ssh gyle task ls
Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10.
$ git push $ ssh gyle build pakname pakname-version
Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить:
$ git commit -a
Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл. Теги старой версии (до commit) не наследуются, поэтому сначала убедитесь, что все изменения внесены, сделайте commit и только потом создавайте тег.
Если Вы хотите собрать другой пакет, выполните пп. 2-10.
Хорошо бы сюда вставить ссылки на Git.alt/Справочник, Git.alt/Краткое_руководство, hasher и другие полезные вещи.