Релиз 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
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 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?

                  Only users with full accounts can post comments. Log in, please.