На прошедшей «GitHub Universe» компания анонсировала много разного, но меня больше всего «зацепило» их собственное CI/CD решение. Основано на Docker, может собирать и выполнять контейнеры по пушу в репозиторий, появлению нового тикета, созданию релиза. здесь можно оставить заявку на участие в публик бете, Microsoft будет выдавать инвайты небольшими пачками. Под катом — мои спекуляции чем такая штука может быть нам полезна при живых GitLab и CircleCI.

В анонсе на TechCrunch прозвучала интересная фраза:
I see CI/CD as one narrow use case of actions. It’s so, so much more,” Lambert stressed. “And I think it’s going to revolutionize DevOps because people are now going to build best in breed deployment workflows for specific applications and frameworks, and those become the de facto standard shared on GitHub.
Похоже, авторы рассматривают новые «Actions» не просто как «выполнить тесты и собрать пакет после коммита». А как способ хранить на GitHub исполняемый код, делиться им с коллегами и вызывать в ответ на внешние события, как это сейчас делает IFTTT.

Несмотря на риски (многие open source решения имеют инсталляторы вида «curl | bash», вызывающие волны негодования от спецов по безопасности), запускать код из облака — удобно. Особенно, если это ваш собственный код. «npx ссылка-на-gist» сокращает код сборок, настроек, конфигураций до одной строки. Которую так легко передать коллегам в слаке или выполнить на ноутбуке нового сотрудника.

CI/CD есть бесплатно у облачной версии GitLab, а в open source проектах GitHub используются интеграции с популярными CI системами как на скриншоте ниже. Но сейчас все это сильно ограничено: CI требует много ресурсов для сборки Docker контейнера, его предпочитают продавать за деньги и боятся майнеров. Появление бесплатного и быстрого решения от Microsoft на GitHub может изменить правила игры. Так же, как в свое время это сделали gist'ы.

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


  1. kovalevsky
    17.10.2018 08:38
    +1

    Если оно будет работать так же, как у Microsoft в VSTS, то лучше не надо, даже за бесплатно :)


    1. eyeofhell Автор
      17.10.2018 08:41

      Сомневаюсь, команды-то разные. Кстати, если есть пара минут — а какие сейчас основные проблемы у «Azure DevOps» (они недано переименовались) CI/CD? Вообще ни разу не пользовался О_О


      1. grigorov
        17.10.2018 09:09
        -1

        Не стоит даже пытаться, лучше уж teamcity/gitlab-ci. Чем "оно"...


        1. aftertherainbow
          17.10.2018 09:24
          +2

          Звучит немножечко предвзято. Самую капельку.


        1. forcewake
          17.10.2018 09:56

          А если отбросить весь это скептицизм относительно того, что продукт сделан в стенах Microsoft, то чем оно хуже teamcity/gitlab-ci?
          Потому что использовав все три могу однозначно сказать, что у них у всех есть как свои плюсы так и минусы.


      1. kovalevsky
        17.10.2018 13:16

        Оно очень долго ищет «агента», прежде чем что-то начать. Оно всё очень долго делает, даже за деньги.
        С колокольни фронтенда — npm там рандомно может фейлиться и фейлить билд c EPERM ошибкой, или чем-нибудь ещё без явной на то причины. Хочешь обновить версию Node.js с которой собирать? Пожалуйста, вот тебе доки, выбирай из любой предустановленной версии Node.js из прошлого века, но только мы тебе её напишем, но собирать будем с дефолтной и индусы из саппорта тебе ничем не помогут. Чтоб поставить другую Node и npm, у нас в definition прописаны отдельные таски, которые на каждый билд качают, устанавливают ноду и обновляют npm. Однажды мы забыли заплатить за это и оно просто молча фейлило билд и ничего не говорило. Новый интерфейс сделан максимально ущербно (имхо), чтоб пользоваться этим стало ещё более дискомфортно, но теперь хотя бы видно кто и что туда засовывал или что оно делает в данный момент, потому что до этого оно показывало исключительно ТВОИ действия.


      1. unsafePtr
        17.10.2018 14:34

        Есть так называемые AzureResourceManager шаблоны с помощью которых можно задеплоить проект в облоко. Вся конфигурация делается в json. Благо примеров много, но если попытаться сделать что-то нестандартное, то становится туго. Другими CI/CD не пользовался. Но мое мнение делать и составлять этим шаблоны неудобно. Причем здесь Azure DevOps? Добавляя таски, за кулисами создается AzureResourceManager шаблон.


      1. ahanoff
        18.10.2018 07:19

        Недавно перешел с Appveyor на Azure Devops. Поэтому буду сравнивать с ним.
        Из текущего негативного:

        1. Много UI в preview, так как они переделывают его, часть функций должна выполняться в script секции, часть в старых tasks
        2. Документация с неточностями, но, подумав головой, все решается. На замечания к документации на github issues реагируют достаточно оперативно
        3. Субъективно, но мне не хватает некоторых predefined variables: индивидуальный номер билда на каждый build pipeline, название ветки для пуллреквеста вместо просто merge, etc
        4. Ценовая политика: платишь за машину для сборки + за каждого пользователя. Да, там есть бесплатные 1800 минут и 5 пользователей, но если сборки часто и команда большая, то лимит на пользователей/минуты довольно быстро исчерпывается

        Из позитива:
        • Довольно удачная на мой взгляд структура: builds pipeline, artefacts, release pipeline, approves, которая позволяет сделать CI/CD в кратчайшие сроки
        • Предоставляют self-hosted build agent, либо azure hosted

        Несмотря на негативные моменты, продолжаем есть кактус пользоваться уже можно, но если у вас уже есть CI/CD система, я бы не торопился менять


  1. VioletGiraffe
    17.10.2018 10:33

    Я так понял, Github CI будет заточен на веб-приложения и сервисы? Для десктопов, embedded и т. п. по-прежнему Travis CI + Appveyor?


    1. eyeofhell Автор
      17.10.2018 11:19

      Вот похоже что нет. Там очень амбициозные заявления. Так что если результат можно собрать докером — то должно подойти. Вопрос с маками, как обычно, остается открытым :)


      1. VioletGiraffe
        17.10.2018 12:34
        -1

        Пока слабо вижу, каким образом Докер мне будет помогать собирать и тестировать С++ или С# софт под Windows. Или под Ардуино. Собственно, именно упор на докер в описании Github CI меня больше всего и смущает, потому что он никаким боком не лепится к разработке моего софта.


        1. RPG18
          17.10.2018 12:42

          Кросс компиляция поможет с embedded.



        1. cy-ernado
          17.10.2018 21:44

          Есть докер и для винды, я собираю и тестирую в докере под Windows несколько проектов на go.
          Нужно только выбрать windows containers.


          Или проблема в тулинге, который сложно использовать внутри контейнера?


          1. VioletGiraffe
            17.10.2018 21:54

            Да, но такие контейнеры и запускаются только на Windows? На Гитхабе они вряд ли будут доступны в системе CI.


            1. cy-ernado
              17.10.2018 21:57

              Да, только на Windows. Мне кажется, что вполне логично сделать их доступными, раз уж Microsoft вкладывается и в докер.


    1. RPG18
      17.10.2018 11:35

      Засовываешь MinGW в докер и собираешь под Windows.


      1. SXX
        17.10.2018 22:35

        А лучше сразу взять MXE чтобы ручками тулчейн не собирать.


  1. Barnaby
    17.10.2018 11:05
    +1

    Ну что, одним шилдиком в ридми станет больше :)


  1. berezuev
    17.10.2018 12:03

    Можно хоронить travis-ci? Или здесь все будет сугубо платное?


    1. eyeofhell Автор
      17.10.2018 15:33

      Есть подозрение, что будет бесплатное. Microsoft на другом деньги делает.


    1. Barnaby
      17.10.2018 15:55

      Если смогут сделать не хуже, в чем я сильно сомневаюсь.
      А вот appveyor помрет. В мс без винды я не верю.


      1. ozkriff
        17.10.2018 16:02

        А вот appveyor помрет

        У него и так проблемы намечаются с тревисом: https://blog.travis-ci.com/2018-10-11-windows-early-release


        1. slonopotamus
          17.10.2018 20:42
          +1

          Вот это новость! Спасибо, пошёл тестить, может удастся отказаться от appveyor.


    1. iproger
      18.10.2018 04:24

      Конкуренция всегда хороша. Уж слишком большую цену поставили в нем.