Релиз GitLab 4.0 и GitLab CI
Конец 2012 года прошел в суматохе, и каким-то образом я упустил из внимания две важные новости: в декабре вышел GitLab 4.0 [1] , а на середину ноября пришелся релиз GitLab Continuous Integration Server [2] .
GitLab [3] — это замечательное FOSS решение для хостинга [4] git-репозиториев внутри закрытой инфраструктуры. Функционал во многом аналогичен GitHub, в частности доступны базовые возможности администрирования и разделения полномочий между пользователями, issue трекер, вики, code review и мердж реквесты (аналог пулл-реквестов на GitHub). И внеочередной плюс теперь, как по мне — это интеграция с GitLab CIS.
GitLab CIS [5] — если GitLab послужит Вам заменой GitHub, то GitLab CIS призван стать заменой Travis CI. Набор фич соответствующий: запуск по git push, отдельные билды под бранч, интеграция с любыми git-репозиториями и бейджик со статусом текущего билда.
Причины для поиска и использования self-hosted решений для содержания кода у всех могут быть разными, но в большинстве своем они вполне очевидны и обусловлены поиском безопасности и прозрачности, чего невозможно добиться при использовании SaaS.
Что примечательно, работу ведут и курируют скромные украинские парни Дмитрий Запорожец и Валерий Сизов [6] .
GitLab 4.0
Изменения в поведении приложения:
Новые проекты получают отдельный неймспейс (к примеру gitlab/vagrant )
Каждая группа имеет свою директорию в gitolite
Все проекты группы будут перенесены внутрь ее директории (нужно обновить git remote)
Проекты без группы останутся на своих местах
У пользователей появляются юзернеймы (для существующих пользователей они будут сгенерированы основываясь на адресе электронной почты)
Пользователь создает проект в своем неймспейсе (например randx/my-project)
Пользователь может менять свой юзернейм. Все его проекты будут соответствующим образом перенесены
У группы есть владелец
Владелец может создавать проекты внутри группы
Владелец имеет доступ ко всем проектам внутри группы
Администратор может переносит проекты из одного неймспейса (группы, пользователя, глобального) в другой
Группа или пользователь — неймспейс для проекта. Владелец неймспейса — владелец проекта
Другие изменения
Улучшенная поддержка PostgreSQL
Добавлено email уведомление о перемещении проекта
Исправлено email уведомление при открытии/закрытии issue
Реорганизованные настройки
Исправлено сравнение коммитов
Обновлен интерфейс, теперь можно скачать патч или дифф для коммита и мердж реквеста
Майлстоуны теперь можно закрывать. Майлстоун остается открытым, пока его не закроешь.
На дешборде отображаются новые комментарии
Быстрое добавление членов команды на странице group#people
Улучшения интерфейса
В разделе администратора проекты, пользователи и группы сортируются по алфавиту
Улучшена страница управления Issue на дешборде
Улучшена интеграция с GitLab CI (требуется GitLab CI v1.1.1)
Что было удалено в 4.0:
Поддержка gitolite 2
Поддержка SQLite (штука конечно хорошая, но эта БД блокируется, когда ей пользуются несколько пользователей одновременно)
Поддержка API v2 (из-за несовместимости с неймспейсами)
Что нужно обновить во время переезда:
Конфиг gitlab.yml
Post-receive хуки gitolite
Права доступа к /home/git/repositories/
Симлинки python2
Скриншоты
Дешборд
Merge Request
File browsing
Issues
Как переустановить gitolite
Как переехать с sqlite
Как установить GitLab v4.0.0
Как обновить GitLab до v4.0.0
GitLab Continuous Integration Server
Ключевые моменты
GitLab CI работает на Ruby on Rails + Resque/Redis
GitLab CI поддерживает только git
Для автоматической сборки требуется работающий инстанс GitLab
Как это работает
Для начала нужно установить GitLab CI на VPS [4] или любой linux сервер
Затем нужно склонировать проекты, которые будут в будущем тестироваться и настроить тестовое окружение
Следующим шагом надо просто добавить проекты в GitLab CI с помощью веб-интерфейса
Остается только скопировать HTTP POST url предоставленный GitLab CI в вебхуки GitLab
При пуше в репозиторий сработает хук, который и заставит CI начать сборку
От себя добавлю, что проекты действительно стоящие внимания. Не пропустите.
GitLab на GitHub [3]
GitLab CI на GitHub [5]
GitLab.org [13]
Автор: shebanoff
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/24751
Ссылки в тексте:
[1] GitLab 4.0: http://blog.gitlabhq.com/gitlab-4-release/
[2] GitLab Continuous Integration Server: http://blog.gitlabhq.com/continuous-integration-server-from-gitlab/
[3] GitLab: https://github.com/gitlabhq/gitlabhq
[4] хостинга: https://www.reg.ru/?rlink=reflink-717
[5] GitLab CIS: https://github.com/gitlabhq/gitlab-ci
[6] Дмитрий Запорожец и Валерий Сизов: http://gitlabhq.com/contact/
[7] Инструкция по переустановке: https://github.com/gitlabhq/gitlabhq/wiki/Reinstall-gitolite
[8] Инструкция по переезду: https://github.com/gitlabhq/gitlabhq/wiki/Migrate-from-SQLite-to-MySQL
[9] Полное руководство по установке (рекомендовано): https://github.com/gitlabhq/gitlabhq/blob/4-0-stable/doc/install/installation.md
[10] Скрипт инсталляции для ubuntu 12.04 x64: https://github.com/gitlabhq/gitlab-recipes/tree/master/install/v4
[11] Инструкция для v3.1: https://github.com/gitlabhq/gitlabhq/wiki/From-3.1-to-4.0
[12] Инструкция для v3.0: https://github.com/gitlabhq/gitlabhq/wiki/From-3.0-to-4.0
[13] GitLab.org: http://gitlab.org/
[14] Источник: http://habrahabr.ru/post/165759/
Нажмите здесь для печати.