Релиз GitLab 4.0 и GitLab CI

    Конец 2012 года прошел в суматохе, и каким-то образом я упустил из внимания две важные новости: в декабре вышел GitLab 4.0, а на середину ноября пришелся релиз GitLab Continuous Integration Server.

    GitLab — это замечательное FOSS решение для хостинга git-репозиториев внутри закрытой инфраструктуры. Функционал во многом аналогичен GitHub, в частности доступны базовые возможности администрирования и разделения полномочий между пользователями, issue трекер, вики, code review и мердж реквесты (аналог пулл-реквестов на GitHub). И внеочередной плюс теперь, как по мне — это интеграция с GitLab CIS.

    GitLab CIS — если GitLab послужит Вам заменой GitHub, то GitLab CIS призван стать заменой Travis CI. Набор фич соответствующий: запуск по git push, отдельные билды под бранч, интеграция с любыми git-репозиториями и бейджик со статусом текущего билда.

    Причины для поиска и использования self-hosted решений для содержания кода у всех могут быть разными, но в большинстве своем они вполне очевидны и обусловлены поиском безопасности и прозрачности, чего невозможно добиться при использовании SaaS.

    Что примечательно, работу ведут и курируют скромные украинские парни Дмитрий Запорожец и Валерий Сизов.

    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

    Как это работает

    1. Для начала нужно установить GitLab CI на VPS или любой linux сервер
    2. Затем нужно склонировать проекты, которые будут в будущем тестироваться и настроить тестовое окружение
    3. Следующим шагом надо просто добавить проекты в GitLab CI с помощью веб-интерфейса
    4. Остается только скопировать HTTP POST url предоставленный GitLab CI в вебхуки GitLab
    5. При пуше в репозиторий сработает хук, который и заставит CI начать сборку


    От себя добавлю, что проекты действительно стоящие внимания. Не пропустите.
    1. GitLab на GitHub
    2. GitLab CI на GitHub
    3. GitLab.org
    Поделиться публикацией

    Комментарии 25

      +6
      Отличный проект, только там я увидел как нужно использовать RoR.
        +1
        Кстати, да. Это во многом образцовый проект.
          0
          На самом деле, есть ряд мест, которые стоит там «прилизать». Что очень радует, парни очень адекватные и правильно реагируют на критику и следят за чистотой кода.
            +2
            Ну и снова замечу — FOSS. Вы всегда можете послать парням Pull Request и «доприлизать» код ;)
              +5
              +1 от парней
                +3
                А кто говорит, что мы так не делаем? ;)
                  +1
                  Похвально ;)
          +1
          Используем GitLab уже полгода и очень довольны! Спасибо ребятам! До этого юзали платный GitHub и фришный Gitorious.
          Сейчас вот к GitLab CI присматриваемся :)
            0
            Я написал пост, и уже через час мы обновили свой GitLab и завели себе инстанс CI. Дерзайте, это просто ;)
              0
              Не. Нужно к этому основательно подойти т.к. проектов много :)
              Сейчас для CI Jenkins используется. Открытые проекты на travis
            +6
            Кстати с этой недели я буду заниматься GitLab и GitLab CI фулл тайм.
            Так что надеемся на улучшение качества продукта :)
              0
              А почему скромничаете и не освещаете процесс работ (например здесь)? Можно ведь привлечь много помощи :)

              Готов предложить свою)
                +1
                Многое освещается в твиттере и блоге гитлаба.
                Если хотите помочь — пишите мне в твиттер. Буду рад
                  0
                  Процесс прекрасно освещен на гитхабе.
                  Да и насколько вижу жесткой нехватки в помощи как таковой нет.
                  dzaporozhets, или я ошибаюсь?
                    0
                    Как обычно бывает, не все активно читают другие источники — у всех разные интересы. И я не думаю, что помощь когда-либо оказывается лишней.
              0
              Отличный проект! Очень помогает в работе, затраты на отдельный VPS, с лихвой окупают крокодильи аппетиты гитхаба.

              Ещё бы по памяти оптимизировать, а то системные требования в виде гига оперативы только на его одного удручают. И то при этом на больших коммитах постоянно error 500.

                +3
                Можно в паре слов, в чём разница между Travis CI и Gitlab CI? Travis CI же вроде опен-сорс, что мешает установить его локально и использовать с Gitlab CI?
                  +1
                  Присоединяюсь к вопросу. Ведь исходники есть. Travis CI в активной разработке.
                  0
                  По-поводу использования скрипта инсталляции было бы неплохо уточнить, что его запускать имеет смысл только на чистой системе, так как этот скрипт вам заменит пароль для mysql, а также установит nginx. Вообще перед запуском имеет смысл его просмотреть.
                    0
                    Полагаю что он расчитан скорее на неопытного пользователя, у которого вероятно чистая система. В противном случае юзер сам виноват :)
                      0
                      Либо когда хочется просто посмотреть в живую (не демо доступ в сети), а настраивать сидеть окружение лень. А так создал виртуалку, запустил скрипт и пускай себе работает, пока варится/пьется чашечка чаю.
                        0
                        Ну тогда проще это заюзать. Пара команд и все работает, при чем последняя (нестабильная) версия.
                    0
                    shebanoff, простите, Вы случайно не знаете, как интегрировать Issues GL с phpStorm?

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое