Непрерывная интеграция, поставка и развертывание являются основополагающими принципами DevOps. В GitLab включена функциональность CI/CD, которая пришлась по душе как разработчикам и аналитикам, так и компаниям в целом.
Однако, было одно упущение — ранее вы не могли использовать GitLab CI/CD с GitHub. В данном релизе мы это исправили.
Несмотря на то, что GitLab лучше всего себя показывает в качестве единого приложения для всего цикла разработки, мы стремимся к продуктивному взаимодействию с другими приложениями. Поэтому, начиная с данного релиза, мы добавляем интеграцию CI/CD с GitHub, а также возможность интеграции CI/CD с любыми другими внешними репозиториями, например BitBucket. Это нововведение нацелено на четыре основные группы пользователей.
Теперь, если у вас есть публичный проект с открытым исходным кодом на GitHub, вы можете пользоваться бесплатным CI/CD на GitLab.com. Мы предоставляем публичным проектам возможности GitLab CI/CD наивысшего плана (Gold) бесплатно, как часть нашей поддержки open source. В то время как другие поставщики CI/CD разрешают выполнять лишь небольшое количество одновременных работ, GitLab.com позволяет проектам с открытым исходным кодом запускать сотни одновременных работ с 50 000 бесплатных минут для конвейеров CI в месяц.
Из общения с нашими крупнейшими клиентами мы знаем, что в больших бизнесах множество команд зачастую использует множество различных инструментов. Наши клиенты хотят стандартизировать CI/CD на GitLab, однако код может храниться одновременно в GitLab, GitHub и других репозиториях. Начиная с данного релиза, компании смогут использовать общие конвейеры CI/CD для всех репозиториев. Это ключевая группа пользователей для нас, поэтому мы сделали CI/CD для GitHub частью нашего плана Premium.
Хотя GitLab спроектирован для использования SCM и CI/CD в одном приложении, мы понимаем, почему некоторые пользователи хотят использовать GitLab CI/CD с контролем версий GitHub. Поэтому в течение года GitLab CI/CD для GitHub будет частью плана Free GitLab.com. Это значит, что все пользователи GitHub, от персональных проектов и стартапов до малых и средних бизнесов, смогут пользоваться GitLab CI/CD бесплатно. В таком варианте изначально доступны 2000 бесплатных минут конвейеров CI с возможностью добавления собственных Runner’ов и апгрейда плана.
Как вы, возможно, помните, недавно мы приобрели Gemnasium. Мы очень рады такому пополнению наших рядов, однако также не забываем о пользователях, которые использовали Gemnasium и раньше: мы хотим предоставить им простой и безболезненный способ перехода на новую платформу. Мы уже поставляем функциональность Gemnasium как часть нашей встроенной системы безопасности, а теперь пользователи Gemnasium, которые используют его в связке с GitHub, смогут использовать GitLab CI/CD для проверок безопасности без необходимости переноса кода.
Мы продолжаем интегрировать контейнеризацию (containerization) в GitLab. В версии 10.4 мы вывели в общий доступ интеграцию с кластерами Kubernetes и GKE. В версии 10.6 мы еще больше упрощаем использование Kubernetes с GitLab. Теперь вы в один клик можете провести развертывание GitLab Runner в подключенный кластер Kubernetes. Также вы можете мониторить ваш кластер Kubernetes и узнать IP адрес контроллера Ingress, подключенного к нему, не выходя из GitLab.
Takuya провел редизайн страницы branches и добавил разделение веток на активные и неактивные, благодаря чему искать нужные, особенно в больших проектах, стало проще.
Спасибо, Takuya! В знак благодарности мы отправили Takuya фирменные кофту, носки и тануки ручной работы с символикой GitLab.
В 2011 году GitLab стартовал исключительно как репозиторий кода. С тех пор он превратился в приложение для полноценного управления жизненным циклом DevOps, которое предоставляет возможности по тестированию, безопасности, пакетированию, развертыванию и мониторингу. При этом весь код вашего приложения по-прежнему хранится на внешнем репозитории.
Для использования GitLab CI/CD с репозиторием GitHub создайте новый проект GitLab и выберите GitHub на вкладке CI/CD for external repo. После того, как вы добавите файл .gitlab-ci.yml
в ваш репозиторий (или подключите Auto DevOps), GitLab будет автоматически запускать конвейеры и обновлять статусы коммитов в GitHub.
Также вы можете подключиться к любому Git-репозиторию по URL и настроить вебхуки статуса вручную. Например, если вы используете Bitbucket, здесь вы можете почитать, как вручную настроить для него GitLab CI/CD.
В честь запуска этой функциональности мы предоставляем ее бесплатно, как часть плана GitLab.com Free, в течение года — до марта 2019.
Документация по CI/CD для внешних репозиториев
С помощью GitLab вы можете взаимодействовать с кластерами Kubernetes, а также с легкостью устанавливать приложения, которые ваш проект сможет использовать.
В GitLab 10.6 мы добавляем возможность развертывания GitLab Runner в один клик напрямую в ваш кластер, после чего он сможет автоматически запускать работы вашего проекта без какой-либо дополнительной настройки.
Документация по установке Runner для Kubernetes
Kubernetes предоставляет разработчикам возможность с легкостью проводить развертывание и управление приложениями, не отвлекаясь на вопросы о том, как и откуда запускается их код. Однако, при этом необходимо отслеживать общую вместимость кластеров и балансировать между эффективным использованием памяти и оставлением пространства для роста.
GitLab 10.6 упрощает эту задачу: как используемые на текущий момент, так и все доступные вычислительные ресурсы подключенного кластера теперь отображаются напрямую. Например, если на досках развертывания отображается под, который не может запуститься, пользователи теперь смогут проверить метрики кластера и понять, были ли израсходованы все его ресурсы.
Документация по мониторингу кластеров Kubernetes
В GitLab 10.2 мы добавили возможность установки Ingress на кластер Kubernetes. После установки Ingress предоставляет публичный IP адрес, который можно использовать для внешнего доступа к развернутым приложениям.
В GitLab 10.6 этот адрес отображается напрямую на странице Kubernetes, так что вы можете использовать его при настройке домена для доступа к вашим приложениям из интернета.
Документация по IP адресу Ingress для кластеров Kubernetes
Распределение рабочего процесса по форкам — частое явление в проектах с открытым исходным кодом, таких как GitLab; при этом мерж-реквесты отправляются из форка в исходный проект.
Теперь сопровождающие (maintainers) исходного проекта могут напрямую вносить небольшие фиксы и делать перебазирование перед мержем, не тратя время на ненужные запросы-подтверждения, как раньше. Само собой, никто не ограничивает размер фиксов, и большие коммиты добавлять тоже можно.
Ранее это было невозможно, поскольку сопровождающие исходного проекта не получали автоматических разрешений на запись в форки. Теперь же, если у автора мерж-реквеста есть доступ на запись в исходную ветку, он может выдать сопровождающим право на запись в ветку мерж-реквеста, выбрав Allow edits from maintainers на его странице. После подключения этой опции пользователи с разрешением на мерж ветки исходного проекта смогут проводить пуш в ветку мерж-реквеста. По умолчанию эта опция отключена.
Документация по правам доступа для сопровождающих
Групповые доски задач GitLab предоставляют единый интерфейс для управления задачами всех проектов одной группы. Все задачи всех проектов группы отображаются в одном месте, и вы можете перемещать их между этапами рабочего процесса.
Ранее эта функциональность была доступна только для планов Premium и Ultimate, и пользователи с такими подписками высоко оценили ее возможности. Пользователи Libre также выразили интерес к единой доске задач, так что в данном релизе мы добавляем ее и для них. В инстансах Libre и Starter теперь есть единая доска задач для каждой группы, тогда как единые доски задач для множества групп остаются привилегией Premium и Ultimate. Мы думаем, что это нововведение повысит привлекательность планов Libre и GitLab.com Free и надеемся получить обратную связь по данной функциональности от еще большего количества пользователей.
Несколько месяцев назад мы добавили статическое тестирование безопасности приложений (SAST). Эта система автоматически ищет уязвимости во всех изменениях кода в мерж-реквесте, благодаря чему вы можете их исправить перед мержем и предотвратить их попадание в master и итоговый релиз.
Начиная с данного релиза полноценный отчет работы SAST отображается на странице CI/CD > Pipelines, что еще больше облегчает отслеживание рисков безопасности в конвейерах для разработчиков, инженеров и других заинтересованных лиц.
Документация по отчетам безопасности SAST на страницах конвейеров
Ранее в GitLab уже была добавлена поддержка популярных языков программирования, таких как Ruby, Python и JavaScript, как часть системы статического тестирования безопасности приложений (SAST).
В GitLab 10.6 мы добавляем поддержку Maven — довольно известного инструмента автоматизации для Java. Если вы уже пользуетесь SAST, вам не нужно ничего менять и перенастраивать — новые проверки появятся автоматически.
Полный лист поддерживаемых языков и фреймворков можно посмотреть здесь.
В некоторых управляемых окружениях системы классификации проектов используются для контроля доступа к ним. Теперь их можно использовать и в GitLab.
При включении этой функции администраторы смогут настраивать каждый проект так, что, дополнительно к контролю доступа самого GitLab, для доступа в проект потребуется дополнительное подтверждение от внешнего сервиса со своей авторизацией.
Документация о внешнем контроле авторизации
Несколько релизов назад мы выпустили динамическое тестирование безопасности приложений Dynamic Application Security Testing (DAST). DAST позволяет динамически и автоматически проверять приложения на уязвимости безопасности в процессе разработки при помощи Review App — до мержа кода в master и релиза.
Раньше эта функциональность была доступна только для публичных страниц. В этом релизе вы можете определить учетные данные, которые DAST будет использовать для идентификации в вашем веб-приложении для симуляции злоумышленника, у которого есть доступ к разделам, доступным только авторизованным пользователям.
Документация о поддержке идентификации в DAST
В GitLab 10.5 мы ввели возможность добавления внешних файлов конфигурации CI/CD в основной .gitlab-ci.yml
вашего проекта. Эта возможность была доступна только для пользователей плана Premium в Gitlab на собственном сервере и для пользователей Silver на GitLab.com.
Мы получили много обратной связи от пользователей: очень многие просили добавить такую возможность в остальные подписки. Мы пошли навстречу и рады сообщить, что эта функциональность теперь доступна пользователям Starter на собственном сервере и Bronze — на GitLab.com. Возможность централизованно контролировать настройку конвейера и переиспользовать одно и то же определение в нескольких проектах очень ценна как для больших корпораций, так и для бизнесов меньшего размера.
Заметим, что согласно нашей политике об открытом исходном коде публичные проекты на Free GitLab.com имеют возможности, эквивалентные Gold подписке. Поэтому данная функциональность также будет доступна и для этих проектов.
Документация о включении дополнительных файлов конфигурации CI/CD
Проекты и команды растут, появляется все больше веток. С новой функциональностью обзора веток и фильтрацией списков веток стало гораздо проще найти нужную. Если за последние 3 месяца в ветку кто-то коммитил, она будет считаться активной.
Спасибо, Takuya Noguchi, за твой вклад!
Некоторые команды используют GitLab вместе с внешним трекером задач. Например, интеграция задач Jira с мерж-реквестами GitLab — очень популярная тема для многих команд. В этом случае задачи в GitLab по-прежнему функционируют нормально, и команды могут использовать их, если им в определенный момент потребуется сделать что-то полностью в GitLab.
Чтобы упростить эту интеграцию, мы добавили в навигацию по проекту новую ссылку. Если у вас уже есть настроенный внешний трекер (Redmine, Jira, Bugzilla или Собственный Настроенный Трекер), в навигации по проекту будет отдельная ссылка, по которой вы сможете быстро перейти в эту внешнюю систему. Ссылка на задачу в GitLab остается там же, где и была, так что при желании вы сможете использовать оба трекера одновременно.
Документация о внешнем трекере задач
Проекты — очень важная часть GitLab, так как в них хранится вся ценная работа (включа репозиторий Git) и данные по организации работы команды (включая задачи и мерж-реквесты). С помощью существующего экспорта и импорта проектов GitLab можно легко переносить проекты между инстансами и внутри них.
До сих пор это приходилось делать вручную. В данном релизе экспорт и импорт проектов стали частью API GitLab: когда вам понадобится перемещать проекты внутри или между инстансами, вы сможете создавать более гибкие рабочие процессы и автоматизировать их.
За эту фичу спасибо Travis Miller!
Документация по API экспорта и импорта проектов
Во многих организациях большая часть общения, включая рабочие процессы и обсуждения аварийных ситуаций, перемещается в чаты. Также в командах часто имеется определенный набор команд для проверки состояния окружения или для выполнения рутинных действий.
В GitLab 10.6 мы хотели упростить автоматизацию этих рутинных действий, а также добавить их прямо в Slack. Для начала нужно добавить работу в YML GitLab CI и подключить интеграцию со слэш-командами Slack. Пользователи затем смогут писать слэш-команды, название работы CI и необходимые аргументы — работа запустится на runner, а результат вернется в Slack.
Документация по GitLab ChatOps
В этом релизе мы добавили новую эффективную интерфейсную возможность: задачи и мерж-реквесты GitLab теперь поддерживают метки. За счет этого управлять ими становится легче: вы можете настроить управление точно под нужды своего проекта.
Вы можете назначать групповые метки в боковом меню эпика — так же, как для задач и мерж-реквестов. Кроме того, вы можете сортировать список эпиков группы по меткам (снова по аналогии с задачами и мерж-реквестами — опытные пользователи GitLab быстро узнают эту функциональность). Это позволит легко смешивать и сопоставлять эпики с разными категориями, предлагаемыми в меню поиска и фильтрации.
Вместе с поддержкой меток, упомянутой выше, мы добавили поддержку API для эпиков. Вы можете получить список эпиков по определенным параметрам поиска и фильтрации в поисковой строке на странице эпиков в веб-интерфейсе. Сюда входит поиск эпика по названию или описанию, фильтр по автору и меткам, а также по дате создания или дате обновления.
До этого релиза возможности API утверждения мерж-реквестов ограничивались утверждением или не-утверждением мерж-реквеста. В этом релизе появилась возможность полностью настраивать утверждение на уровне проекта или на уровне мерж-реквеста. Функционально получилось то же самое, что и в веб-интерфейсе GitLab.
С помощью API утверждений команды смогут проводить более детальное ревью кода и настраивать процессы утверждения исходя из своих потребностей. Вы можете использовать API для определения того, какие процессы будут происходить в веб-интерфейсе GitLab, а какие — вне его.
Документация об API утверждений мерж-реквестов
В этом релизе мы добавили поддержку API в обсуждения задач, сниппетов и эпиков. Это значит, что все комментарии и обсуждения задач теперь доступны через API. Команды могут использовать API для получения более гибких, настраиваемых и специфических рабочих процессов, которые обычно не используются в основном веб-интерфейсе GitLab.
Поддержка API для комментариев и обсуждений мерж-реквестов выйдет в следующем релизе.
Документация об API обсуждений
Мы продолжаем работать над локализацией GitLab: в этом релизе мы добавили поддержку филиппинского, индонезийского и турецкого языков.
Также мы экстернализировали строки в заблокированные файлы репозитория (Repository Locked Files) для версии Premium и выше: теперь наши переводчики смогут добавлять больше языков в большее количество строк в GitLab.
Если вы тоже хотите поучаствовать в переводе GitLab, присоединяйтесь к нашему сообществу переводчиков.
Документация о локализации GitLab
Подробные release notes и инструкции по обновлению/установке можно прочитать в оригинальном англоязычном посте: GitLab 10.6 released with CI/CD for GitHub and deeper Kubernetes integration.
Над переводом с английского работали @rishavant и @sgnl_05.