Автотесты и деплой на GitHub Actions: npm-скрипты, EditorConfig и настройка ssh-ключа

Поділитися
Вставка
  • Опубліковано 1 лют 2025

КОМЕНТАРІ • 160

  • @pepelsbey
    @pepelsbey  4 роки тому +4

    00:00 Интро
    01:43 Обзор проекта
    05:00 Сборка и деплой
    09:16 Создание репозитория
    10:50 Гитхаб-экшены
    11:59 Экшен для теста
    14:32 EditorConfig
    15:31 Запуск тестов
    16:56 Экшен для деплоя
    18:46 Добавление ключа
    21:51 Запуск деплоя
    23:35 Выводы
    24:55 Аутро

    • @evgeniymia9350
      @evgeniymia9350 3 роки тому

      Мне постоянно выдаёт ошибку на стадии rsync. Вы не могли бы помочь, всё перекопал, но решения так и не нашёл

  • @КириллАнатольевич-ы8д

    в восторге от того что ты делаешь, крутой контент, потрясающая харизма, не покидай нас больше пожалуйста!!!

  • @blinkapec
    @blinkapec 4 роки тому +12

    О боже, эта подача, это качество, этот контент! Просто и глазам, и ушам счастье :)
    Как всегда, Вадим берёт и не отпускает до "титров" :)
    Я даже на 1х смотрю, чтоб кайфануть подольше =)

  • @ivanstrilets443
    @ivanstrilets443 4 роки тому +28

    Подачи качественнее в ру сегменте не встречал) Палец вверх!

  • @andyvi3116
    @andyvi3116 4 роки тому +3

    Шикарная подача контента, самое главное, в такой простой манере в такой непростой области айти, как девопс. Спасибо Вадим за мастер класс )))

  • @viktor_the_developer
    @viktor_the_developer 4 роки тому +8

    Большое спасибо. Можно разобрать больше возможностей гитхаба)

  • @tarasdashkevych
    @tarasdashkevych 4 роки тому +3

    Вадим, ти крутий! Дуже все зрозуміло і грамотно говориш та показуєш. Дякую за всі твої відео!

  • @IvanIsayev
    @IvanIsayev 4 роки тому +1

    Крутейшие ролики в российском интернет-пространстве! Всё по делу, без воды, без соплей! Очень круто!

  • @ГеоргийЧупин-в1е
    @ГеоргийЧупин-в1е 4 роки тому +1

    Спасибо! До этого не встречал столь адекватного видео по этой теме

  • @anonlog
    @anonlog 3 роки тому +1

    Восторг!!! Огромное спасибо, за такой годный контент. Все заработало и на моем репозитории. Я просто счастлив!)))

  • @АлексейКазаков-р7й
    @АлексейКазаков-р7й 4 роки тому +1

    Господи, полгода было интересно ci/cd заняться, но было стремновато. А тут такая годнота подъехала, часок и готово, СПАСИБО!)

  • @lesyakogivchak8899
    @lesyakogivchak8899 4 роки тому +1

    Очень круто! Спасибо большое! Сразу же пошла пробовать и тестировать. Получилось автоматизировать на своих проектах - тесты, билд и деплой на firebase hosting :) Для меня, как для фронтенда - это невероятная магия :)

  • @dudovichenko
    @dudovichenko 3 роки тому +1

    Настроил у себя, все работает, красота! 🧐
    Вадим, ты лучший!

  • @marthtml
    @marthtml 4 роки тому +2

    такое бы понятое да еще с gitlab, вообще красота будет, везде гитлаб. Спасибо за контент!

  • @dobermanpharaoh7567
    @dobermanpharaoh7567 Рік тому

    Отлично все обьяснил и рассказал, спасибо очень круто, попробую в своём пет проекте

  • @capstanfearless
    @capstanfearless 4 роки тому +1

    Вадим, всё просто и офигенно, спасибо большое, буду пользоваться этими штуками!

  • @panterr2991
    @panterr2991 4 роки тому +2

    Жирный лайк за очень полезный видос!

  • @e.chefranov
    @e.chefranov 4 роки тому +3

    Офигенная тема! Спасибо большое)

  • @Игорь-н1р1ъ
    @Игорь-н1р1ъ 3 роки тому

    Отлично все рассказал, что для чего и без "воды"! Лайк и подписка)

  • @dear_lucas
    @dear_lucas 2 роки тому

    Спасибо, Вадим, за отличный туториал! Собрал по нему авто-деплой Django-проекта. Единственное, чего тут не хватает, так это добавить в команду про rsync: --filter=":- .gitignore". А то он сразу же поудалял у меня всю статику и медиа-файлы...

  • @АлександрБугримов-о1е

    Вообще отличное видео. Спасибо!

  • @КостянЕрмаков-е9ю
    @КостянЕрмаков-е9ю 4 роки тому +2

    Хммм, надо пересмотреть видео и попробовать что-то такое сообразить, ну или сломать как обычно. 😂
    Спасибо Вадим.

  • @Disorrder
    @Disorrder 4 роки тому +1

    в гитлабе это было уже много лет назад :) Наконец-то после покупки гитхаба микрософтом что-то начало шевелиться

  • @АлександрСмирнов-ы9ж

    Спасибо за видео, максимально полезная информация для разворачивания кода без старых выгрузок по FTP. Кстати, важно убедиться чтобы на VPS сервере rsync также был установлен.

  • @GoshaakaScooby
    @GoshaakaScooby 4 роки тому +1

    Огромное тебе спасибо!!! То, что ты делаешь это бесценно.

  • @eq656
    @eq656 4 роки тому +1

    Это невероятно полезная информация

  • @ВадимБогданов-й1ч
    @ВадимБогданов-й1ч 4 роки тому

    Как раз на очередь в изучении стал вопрос о деплое, и ты тут как тут)
    Спасибо 🙃

    • @pepelsbey
      @pepelsbey  4 роки тому

      Подписывайтесь, будет больше )

    • @ВадимБогданов-й1ч
      @ВадимБогданов-й1ч 4 роки тому

      @@pepelsbey сколько минимально на патреоне?)

    • @pepelsbey
      @pepelsbey  4 роки тому

      Я сейчас про подписку на канал говорил :) А на Патреоне кажется минимально 1 $

    • @ВадимБогданов-й1ч
      @ВадимБогданов-й1ч 4 роки тому

      @@pepelsbey на канал то я подписан), а на патреоне видел 99$, и пока это сочно для меня в месяц)

    • @pepelsbey
      @pepelsbey  4 роки тому

      Не, 99 $ - это сколько всего собирают люди :)

  • @boldfish8191
    @boldfish8191 4 роки тому

    самый внятный оратор который разжевывает валенкам типа меня... лайкос однозначный только по nginx-у не очень зашло так как у меня на VDS джанга вертится и не очень подошло

  • @andreysokolov2335
    @andreysokolov2335 4 роки тому +1

    Отличное видео. Очень полезно. Большое спасибо )

  • @777Vasya77
    @777Vasya77 4 роки тому +1

    Спасибо за классный контент! 😍

  • @jorgenUA
    @jorgenUA 4 роки тому

    тема интересная и ведущий занятный, футболка что надо, каждый раз с новыми надписями ))

    • @pepelsbey
      @pepelsbey  4 роки тому

      Стараюсь разнообразить картинку :) Но футболки уже начали повторяться, к сожалению

  • @yslpn
    @yslpn 4 роки тому +1

    Очень полезно, спасибо!

  • @evilme
    @evilme 4 роки тому

    Вадим, спасибо за ваш труд.

  • @oleksandrilkevych8268
    @oleksandrilkevych8268 4 роки тому +4

    Всем фронтендерам в своих командах, чтобы перестали бояться сами работать с сервером и не ждали сложа руки помощи.

  • @SalomDunyoIT
    @SalomDunyoIT 3 роки тому

    прям то что надо было! круто.

  • @user-xu9tb7oe2z
    @user-xu9tb7oe2z 2 роки тому

    спасибо большое! помогло

  • @FozGenKo
    @FozGenKo Рік тому

    npm ci берет зависимости из package-lock.json, а при npm i просто устанавливает из package.json, при этом может обновиться файл package-lock.json

  • @artemijeka
    @artemijeka 2 роки тому

    Интересно!

  • @Jay-pp4pk
    @Jay-pp4pk 4 роки тому +1

    Я столько времени потратил на освоение этого всего и так гордился этими навыками, а начинающим разработчикам теперь все достанется за 5 минут, потраченных на видео. Обидно однако(
    Шучу, конечно же:)
    Спасибо за видос!
    С удовольствием посмотрел и сверил со своими знаниями.

    • @pepelsbey
      @pepelsbey  4 роки тому +4

      По видео может сложиться впечатление, что я всю жизнь это знал. Но я, как и вы, столько времени потратил весной, чтобы разобраться. А теперь вот рассказываю всего за пять минут!

    • @Jay-pp4pk
      @Jay-pp4pk 4 роки тому

      @@pepelsbey очень информативно получилось 👍

  • @TheJustmeagain
    @TheJustmeagain Рік тому

    Стоит добавить, что npm ci на пайплайне будет работать только в том случае, если репозиторий содержит package-lock.json. В противном случае будет сваливаться в EUSAGE ошибку.

  • @kost9kost
    @kost9kost 4 роки тому

    Спасибо отличное видео

  • @dihaneeer
    @dihaneeer 3 роки тому

    Офигеть! Это похоже на магию 😅

  • @ІванБоровик-э8л
    @ІванБоровик-э8л 3 роки тому

    Спасибо!

  • @vic_shine
    @vic_shine 4 роки тому

    То чувство, когда «посмотрел» видео еще до того, как его смонтировали... благодаря оповещениям в ленте GitHub, о том, что некий юзер pepelsbey начал пушить в репозиторий pepelsbey.dev коммиты со странными названиями (типа «ломает лого»)... 😅 Зашел в Actions репозитория, посмотрел исходники и ага, вот про что будет видео.
    В целом, отличный выпуск! Как всегда - огромное СПАСИБО, Вадим 👍
    Ну что, следующая остановка Docker? Или может быть даже Ansible? И можно будет смело закрывать тему «деплой для самых маленьких» - всё остальное уже бантики и вкусовщина... 😉

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Я, пожалуй, буду теперь делать такие вещи в приватных репозиториях, чтобы не привлекать лишнего внимания. Деплоя сложнее, чем было в этом видео, не будет - я рассказал то, в чём уверен, дальше - просто не моя область.

    • @vic_shine
      @vic_shine 4 роки тому

      @@pepelsbey вот за что люблю и уважаю тебя, Вадим, так за то, что на канале (и в других соцсетях) не бывает «мусорного» контента на темы, в которых ты не разобрался и/или не уверенно себя ощущаешь! Спасибо огромное, еще раз, ты делаешь контентную часть Рунета (да, и нас всех, что уж тут) чуточку лучше 🥰

  • @dimkadenisov
    @dimkadenisov 4 роки тому

    Вадим, спасибо за видео. У Вас отлично поставлена речь. Излагаете кратко и ясно.
    Подскажите, пожалуйста как сделать вывод возможных продолжений команд в терминале как это происходит на 19:15?

    • @pepelsbey
      @pepelsbey  4 роки тому +2

      Этот вывод кажется встроен в bash и вызывается нажатием Tab на неполном имени.

  • @eqntdhjn
    @eqntdhjn 4 роки тому

    Ничего не понял, но очень круто!

  • @kotelnikov-blog
    @kotelnikov-blog 4 роки тому +3

    19:44 Теперь в буфере обмена лежит ПРИВАТНЫЙ ключ ;)

    • @pepelsbey
      @pepelsbey  4 роки тому

      Да, оговорился. Но, к счастью, скопировал всё-таки нужный :) Не верьте ушам, верьте глазам!

  • @StupidLova
    @StupidLova 4 роки тому

    Отличный материал! Жаль нераскрытой осталась тема как деплоить только в случае, когда экшен тестирования был успешно завершен.
    В доке тоже не нашел описания как описать зависимость между workflows. Надеюсь добавят в будущем.

  • @DoNotMerge
    @DoNotMerge 4 роки тому

    npm ci использоует для установки package-lock.json. это нужно чтобы сервер использовал контролируемые зависимости, а не собирал из последних версий

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Фактически да, но главное тут, как я сказал, что ставится быстрее :)

  • @fisherny3959
    @fisherny3959 4 роки тому +1

    Спасибо огромное, очень полезное видео лично для меня, так как из этого я почти ничего не знал ). Я так понял, что с помощью action можно запретить пушить в мастер и в публичном репозитории и делать только через pull_request, верно?

    • @pepelsbey
      @pepelsbey  4 роки тому

      Это можно сделать в настройках репозитория - запретить пушить в мастер.

    • @fisherny3959
      @fisherny3959 4 роки тому

      @@pepelsbeyСпасибо за ответ. Все оказалось гараздо проще ) Я еще совсем зеленый в данной теме )

  • @gggmvp4689
    @gggmvp4689 4 роки тому

    Вадим, когда запишите полноценный практический курс по вёрстке?)

    • @pepelsbey
      @pepelsbey  4 роки тому

      Пожалуй, никогда :) Это очень большая работа, которую я уже так или иначе делаю в HTML Academy и этой мой фултайм.

  • @user-QesOrwuMqN
    @user-QesOrwuMqN 4 роки тому +8

    Лучше создать отдельный ключ для деплоя, ты же можешь на разные сервера под своим ключом ходить, а значит в случае компроментации ключа придется везде его перепрописывать

    • @pepelsbey
      @pepelsbey  4 роки тому +3

      Вы правы: на тех же «Веб-стандартах» заведён отдельный пользователь для деплоя и используются его ключи. Но тут проще было показать свой.

  • @Какой-тоПарень-ш2ю

    Вот бы про ci/CD для докера послушать

    • @pepelsbey
      @pepelsbey  3 роки тому

      Это вряд ли, я не настоящий девопс

  • @Artem-pe3sb
    @Artem-pe3sb 4 роки тому

    Здравствуйте. Шикарный контент, большое спасибо! А сборка и деплой в GCP будет принципиально отличаться от описанного в видео? Мне, в частности, требуется собрать java-проект и командами gcloud сначала закинуть исполняемый файл в Гугл, затем рестартануть группу виртуалок в GCP.

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Не работал с GCP, так что не помогу вам здесь

  • @osidpgipsoe
    @osidpgipsoe 4 роки тому +1

    npm ci игнорирует package.json пакета и устанавливает модули руководствуясь локфайлом (package-lock.json). Это позволяет создавать воспроизводимые сборки: вы получаете именно то, что ожидаете при каждой установке.

  • @tiffany-user
    @tiffany-user 3 роки тому

    Привет. Спасибо за множество полезной информации. Есть вопрос по медиафайлам. Если деплоиться таким образом, то все картинки и видео находящиеся в папке проекта, точно также перезаписываются, как и сам код. Если размер медиа 20мб и больше, то это большие затраты времени. Как лучше всего хранить медиафайлы?

    • @pepelsbey
      @pepelsbey  3 роки тому +1

      Если в репозитории хранится контент, то лучше такого избегать и делать более сложный деплой. Например, хранить тяжёлое на CDN.

  • @tolych
    @tolych 4 роки тому

    Жаль не было этого видео 4 года назад, когда все это дело настраивал по документации

  • @bpleshka
    @bpleshka 4 роки тому

    GitHub Actions - это лучшее что случилось в мире CI/CD за последнее время. Сыро еще, но очень много возможностей появилось. Можно еще прокачать доставку делая репорты с помощью Deployments API. Это позволит получать сообщения о доставке в Пулл Реквестах, ну или в целом получить новую вкладку с доставками в репозитории.
    Мы тут Action наопенсорсили для этого github.com/marketplace/actions/deploy-status

    • @alexandrvienik1575
      @alexandrvienik1575 4 роки тому

      Как по мне, то гитлабовский CI/CD тоже довольно удобно сделан

  • @PlaceTickets
    @PlaceTickets 3 роки тому

    Подскажите пожалуйста, как сконфигурировать репозиторий, чтобы пи создании Release в архив попадали не все файлы репозитория, а чтобы можно было исключить парочку файлов репы и в архив попадали только остальные?
    Спасибо.

    • @pepelsbey
      @pepelsbey  3 роки тому

      К сожалению, мне не доводилось работать с релизами, но думаю можно запускать экшен, который будет формировать нужное по событию.

  • @dyaroman
    @dyaroman 4 роки тому

    Спасибо за познавательное видео!
    Вот только тема с тестами не совсем раскрыта, если экшен тестов прошёл не успешно, деплой все равно пройдёт?

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Я показал саму механику организации такой сборки на Гитхабе. Как её комбинировать и усложнять - это другой вопрос. Лучше конечно идти через пулреквесты, в которых непрошедший тест будет блокировать мёрж и показывать, что такому коду не дело в мастере. Но можно и объединить деплой с тестом в одном экшене, чтобы тесты падали и деплой не проходил. Это уже другой уровень сложности, я туда пока решил не ходить.

    • @ermakamre
      @ermakamre 4 роки тому

      @@pepelsbey бывает и такое, что тесты в pull request проходят, а вот после merge в master (если это не fast-forward merge), уже что-то ломается. Так что лучше всегда тестировать именно ту версию, что будет deployed.

  • @zencod_ru
    @zencod_ru 4 роки тому

    Спасибо за видео! Такой вопрос, а нельзя в deploy.yml писать команду npm run deploy -e ... и дальше уже путь к ключу? Чтобы если что не править в двух местах

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Вообще в npm-скрипты можно прокинуть параметры во время запуска через npm run с помощью -- (двух дефисов), так что попробуйте. Вопрос в том, получит ли такие параметры rsync, но кажется, что шанс есть.

  • @yagelProject
    @yagelProject 3 роки тому

    Vercel полностью убирает прослойку между ubuntu и настроек Github. Если это не бекенд конечно ;) а только фронтэнд как в примере.

  • @АлексейБугаев-з9ь
    @АлексейБугаев-з9ь 4 роки тому

    Вадим спасибо за потрясающую идею, только застопорился на том что npm run build в экшене скрипт вылоняется полностью без ошибок, а результа ноль(ничего не собрано), экшен на всех пунктах ставит зеленую галочку. Есть ли предположения?

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Если вы хотите, чтобы результат сборки оказался в репозитории, вам это нужно сделать самим. Сборка запускается на свежем экземпляре сервера, а потом гасится и пропадает, если вы ничего не сделаете с результатом.

    • @АлексейБугаев-з9ь
      @АлексейБугаев-з9ь 4 роки тому

      @@pepelsbey Теперь все стало ясно. Спасибо!

  • @ВасилийКлеткин

    Расскажи, как деплоить через docker-compose

    • @pepelsbey
      @pepelsbey  Рік тому

      Я не очень разбираюсь в Docker, но знаю где почитать. Может вам поможет:
      web-standards.ru/articles/docker-unboxing-1/
      doka.guide/tools/docker-compose/

  • @0xFD1C41FA
    @0xFD1C41FA 4 роки тому

    Видео хорошее и полезное, но есть один нюанс: если тест падает - деплой пройдет.
    Я решил эту проблему тем, что объединил джобы в один файл и описал зависимость деплоя от успеха тестов через ключ needs, но это имеет другую проблему - тогда приходится убрать вотчинг пулл реквестов ибо деплой на пулл реквест - не нужно, тут или как-то условие сделать на тип события, или делать отдельную джобу конкретно на пулл реквест.
    Хотелось бы чтобы Вы это прояснили, мой английский не позволяет мне свободно читать документацию по ГитХаб екшенам :(

    • @pepelsbey
      @pepelsbey  4 роки тому +2

      Для меня это никогда не было проблемой: коммиты попадают в мастер из пулреквеста, где запускается тест и он не мёржится, пока не начнут проходить тесты. Это самое правильное решение, на мой взгляд. Мне пока не доводилось собирать более сложные цепочки из экшенов, для моих задач хватало простых. Но если доберусь, обязательно расскажу об этом.

  • @andryi6175
    @andryi6175 4 роки тому

    Класно все) но жизнь сурова когда работаешь в команде где не используют git)) а про докер есть что ?)

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Соболезную. И почитайте документацию, там есть подробности про образы, докер и прочее.

  • @ИванИванов-м3у4ы
    @ИванИванов-м3у4ы 4 роки тому

    Вадим, хоть это не совсем ваш профиль - DevOps, но ради сравнения, запишите пожалуйста про Jenkins.

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Вы правы, это совсем не мой профиль. Так что вряд ли :)

    • @bargamut
      @bargamut 4 роки тому

      По Jenkins есть неплохие уроки от Кирилла Семаева.
      В общем и целом, там примерно всё так же, как и с Github Actions. Только pipeline приходится писать на языке Groovy, а не YAML, что не очень хорошо сказывается на читабельности, но не критично. Впрочем, есть плагин, Jenkins YAML Pipeline, что решает эту загвоздку. Во всяком случае, на моей практике проблем не возникало, а если и есть, можно пойти на Github к автору плагина, посотрудничать. )

  • @jorgenUA
    @jorgenUA 4 роки тому

    И как это мы должны всё бросить и узнавать про эдитор.конфиг, если ты нам про него не рассказывал?! Вадим!))

    • @pepelsbey
      @pepelsbey  4 роки тому

      Теперь у вас нет оправданий!

  • @MikeIsTalking
    @MikeIsTalking Рік тому

    Вадим, привет! А скажи пожалуйста, а как ты решаешь проблему инвалидации кешей? Я задеплоил сайт, по аналогии с тем, как ты делаешь в этом видео (см. твой package.json), и каждый раз, когда я что-то меняю в стилях, после редеплоя, браузер всё ещё отдаёт старую версию статики. Я, конечно, закостылил сейчас это в виде версии,

    • @pepelsbey
      @pepelsbey  Рік тому +1

      Я раньше возился с кэшбастингом: переименовывал файлы в хэш-сумму, делал автозамену - для всего есть плагины для сборщиков: Gulp, Webpack, Rollup, Vite. Но в какой-то момент попробовал сделать проще и не заметил разницы. Кажется, что дело в правильной настройке сервера, чтобы отдавались правильные заголовки.

    • @MikeIsTalking
      @MikeIsTalking Рік тому

      Спасибо большое! Если у меня просто статичный сайт на nginx, то просто в настройках nginx это делается?@@pepelsbey

    • @pepelsbey
      @pepelsbey  Рік тому +1

      Да, нужно поискать руководство как в конфиге nginx выставить правильные заголовки

    • @MikeIsTalking
      @MikeIsTalking Рік тому

      Отлично! Спасибо, я сделал. Это очень просто:
      server {
      ...
      etag on;
      if_modified_since before;
      ...
      }@@pepelsbey

  • @blinkapec
    @blinkapec 4 роки тому

    А всё это можно провернуть с приватным репозиторием на бесплатном github аккаунте?
    И есть ли ограничения у action-ов? На bitbucket подобное пробовал - было ограничение на сколько-то минут на выполнение тасков в месяц, если не ошибаюсь.

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      В бесплатных аккаунтах теперь можно делать приватные репозитории и там всё так же хорошо работает.

    • @0xFD1C41FA
      @0xFD1C41FA 4 роки тому +1

      В дополнение - в гитхабе тоже есть ограничения, в зависимости от вашего тарифа.
      Более точно можете узнать в секции pricing на гитхабе.
      Точно не могу сказать, там что-то вроде 1500 минут в месяц на бесплатном аккаунте.

    • @blinkapec
      @blinkapec 4 роки тому

      @@0xFD1C41FA Опа, спасибо за уточнение!

  • @pnlabs
    @pnlabs 4 роки тому

    Интересно, а я через вебхуки деплою, не пойму чем лучше экшены... Только тем, что собираются на самом гитхабе? У меня по вебхуку сам сервер вытягивает свежий master и тесты и билды просто запускаются на продакшн-сервере (на уже установленном node и npm) и не надо никаких ключей

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Лучше тем, что прозрачнее и хранятся вместе с кодом. То есть у вас и npm-скрипты, и экшены живут вместе и понятно что и как происходит. Плюс интерфейс запуска отлично показывает, что пошло не так. Ну и не только деплой ведь - автотесты кода, вы про это не забывайте :)

    • @pnlabs
      @pnlabs 4 роки тому

      @@pepelsbey но тесты я всё равно на продакшне запускаю и у вас ключ с кодом не хранится и всё равно надо настраивать, но я вас понял, да, тоже как вариант, удобно.

  • @olduniverse9270
    @olduniverse9270 4 роки тому

    Сори может туплю. Но зачем сохранять ссш в файл с окружения, а потом из файла в rsync? Нельзя сразу с окружения передать?

    • @pepelsbey
      @pepelsbey  4 роки тому

      Я несколько раз перечитал вопрос и всё равно не понял. Разверните, если не сложно :)

    • @olduniverse9270
      @olduniverse9270 4 роки тому

      @@pepelsbey 18:45 нельзя на 28 строке вместо "ssh -i $HOMe/.ssh/key -o ...." написать "ssh ${{secret.ssh}}" как на 22 строке? примерно так.

    • @pepelsbey
      @pepelsbey  4 роки тому

      Вы, пожалуй, правы. Я соединял рецепты вместе и не додумался до оптимизации.

    • @olduniverse9270
      @olduniverse9270 4 роки тому

      @@pepelsbey видео очень хорошее. Буду себе делать actions и попробую.

  • @dreadwood
    @dreadwood 4 роки тому

    Интересное видео. На ~19:45 возникает путаница: какой ключ в буфер попал - публичный/приватный.

    • @pepelsbey
      @pepelsbey  4 роки тому

      Да, оговорочка вышла. К счастью, скопировал правильно :)

  • @r2r4ik
    @r2r4ik 4 роки тому

    Можно спросить Ваше мнение по поводу gitLab?

    • @pepelsbey
      @pepelsbey  4 роки тому

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

    • @r2r4ik
      @r2r4ik 4 роки тому

      @@pepelsbey Спасибо!!! И респект за ответ!

    • @bargamut
      @bargamut 4 роки тому

      Ввёл на предыдущем месте работы хранение проектов на GitLab Standalone CE.
      Встроенный CD/CD конкретно помог относительно быстро внедрить практики DevOps и ускорить процесс разработки и доставки собранных пакетов (деплой ручной по отмашке) + настроил простые пинки Телеграм-бота для уведомлений о статусе и готовности этих сборок.
      Но временами приходилось много курить документацию, т.к. какие-то вещи приходилось делать не совсем прямым путём. Как минимум, из-за использования бесплатной версии, при наличии нужных возможностей в платном Enterprise. Как максимум, из-за технических ограничений в разработке GitLab.

  • @denysdeckard7607
    @denysdeckard7607 4 роки тому

    Как кстати!

  • @БогданЮрчук-т8о
    @БогданЮрчук-т8о 4 роки тому +1

    есть ли возможность отклонить деплой если тесты не прошли?

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Да, этот способ называется «пулреквест» :) Вы можете усложнить и склеить тестирование и деплой в один экшен, но лично я иду через пулреквесты, так прозрачнее и надёжнее.

    • @БогданЮрчук-т8о
      @БогданЮрчук-т8о 4 роки тому

      @@pepelsbey ахах :) ето слишком просто. Спасибо за ответ

  • @dimalepel
    @dimalepel 4 роки тому

    Добрый день. Решил поиграться с исходниками проекта и при выполнении команды "npm start" вместо проекта получаю "Error. Cannot GET /". В чем может быть ошибка? Заранее благодарен. P. S. Использую исходники из ролика.

    • @pepelsbey
      @pepelsbey  4 роки тому

      Сложно сказать, что это может быть без подробностей. Я захожу в папку репозитория playground/28, делаю npm install, npm start и у меня всё работает :(

    • @nataliasemenova548
      @nataliasemenova548 4 роки тому +2

      Такая же проблема. Если у вас windows, удалите одинарные кавычки вокруг имен директорий.
      "start": "browser-sync start --server src --no-notify --no-ui --cwd src --files index.html,styles/**/*",

    • @pepelsbey
      @pepelsbey  4 роки тому

      Спасибо! Убрал кавычки в скрипте, запушил в репозиторий.

    • @dimalepel
      @dimalepel 4 роки тому

      @@nataliasemenova548 Спасибо. Все заработало. Но у меня еще вопрос: какими плагинами для npm лучше пользоваться для добавления в данную сборку возможностей работы со скриптами и изображениями (шрифтами). Заранее благодарен.

  • @googleplexer
    @googleplexer 4 роки тому +1

    Гитхаб экшны рулят! :) Долой всякие сервисы ci! Даешь комбайн на github! :) Я тоже тащуся от Экшенов на ГитХабе 😂😎👌🥳

  • @vitaliynosov6189
    @vitaliynosov6189 4 роки тому

    При запуске сборка выдает Cannot GET / В чем может быть проблема?

    • @pepelsbey
      @pepelsbey  4 роки тому

      К сожалению, сложно сказать. Можно много чего сделать не так: не поставить зависимости, запустить не там и не то )

    • @vitaliynosov6189
      @vitaliynosov6189 4 роки тому

      @@pepelsbey Да все правильно установлено и запущено. Ошибка в консоли : Refused to execute inline script because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-ThhI8UaSFEbbl6cISiZpnJ4Z44uNSq2tPKgyRTD3LyU='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      Опять же, до конца не уверен, но предположу: у вас где-то указан заголовок CSP (Content-Security-Policy), который запрещает встраивание скриптов на страницу. А для работы Browsersync такое встраивание нужно. Вероятно, вам стоит отключить такие заголовки при локальной разработке и отправлять их только в продакшене developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

    • @vitaliynosov6189
      @vitaliynosov6189 4 роки тому

      @@pepelsbey Cпасибо

  • @KickFuel
    @KickFuel 4 роки тому +3

    В ухе дебиан)

    • @pepelsbey
      @pepelsbey  4 роки тому +1

      А на сервере Убунта, непорядок

  • @b-o-t-l-y
    @b-o-t-l-y 4 роки тому

    Ура, я уже достал попкорн!!!!!!!!!!!!! Приятного мне просмотра. ))))))

  • @Kirill-kh3kt
    @Kirill-kh3kt 4 роки тому

    Мне кажется, пора использовать yarn :)

  • @anstapol
    @anstapol 4 роки тому

    19:40 не понятно, копируете приватный ключ но говорите "в буфере лежит мой публичный ключ". И зачем называть файл `.ssh/key` если можно использовать стандартное имя тем самым избегая флаг `-i`

    • @pepelsbey
      @pepelsbey  4 роки тому

      1) оговорка и 2) вариация - кажется ничего страшного, да ведь?

  • @nickswarden5893
    @nickswarden5893 Рік тому

    GitHub Actions, SSH в пайплайне, сильно. Не надо такому учить, потом приходят и делают такую грязь. Прежде чем снимать обучающие видео - разберитесь в теме.
    Простые шаги: Сборка, тестирование, запаковка кода( артефакт ), доставка и это база.

    • @pepelsbey
      @pepelsbey  Рік тому +1

      Всё классно, но забыли аргументацию почему так нельзя делать. Вот моя: это прекрасно работает для моих задач. Не работает для ваших? Поделитесь опытом, а не запрещайте мне делиться моим.

  • @googars
    @googars 4 роки тому +1

    Очень полезно 👍 Большое спасибо!

  • @darwim
    @darwim 4 роки тому +1

    Очень доходчиво, спасибо

  • @АлександрКостюченко-у4х

    Спасибо!

  • @Ercheg123
    @Ercheg123 3 роки тому

    Отличный контент. Спасибо.

  • @BearVodkaAndValenki
    @BearVodkaAndValenki 3 роки тому

    Спасибо!

  • @kaze9308
    @kaze9308 3 роки тому

    Спасибо!