Pull to refresh

Comments 15

А не проще выполнить этот питон скрипт обновления контейнера по ссш а не дергать через веб хук?

Если Вы имеете ввиду заходить скриптом по ssh и пулить/запускать контейнер, то примерно от этого я и пытался уйти.
В моем скрипте фласка от силы строк 20-25. От того же paramiko был бы не сильный выигрыш, да и не количеством строк мерятся надо. Плюс я использую dedicated сервер, и мне бы пришлось через pfsense пробрасывать ssh, что не есть хорошо.
А с веб сервисом от меня не требуется мануальных действий, результат я получаю гораздо быстрее, я могу развивать его(расширяя api), а также собирать различные метрики для сравнения различных подходов.

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

ИМХО имелось ввиду выполнить ссх команду в экшине
Спасибо, как раз хотел разобраться в нем, чтобы образ собирался.

Вопрос: тесты ведь планируется запускать для всех бранчей, а чекат делается только из мастера?


   tags:
     - '!refs/tags/*'
   branches:
     - '*'

...
steps:
  # Чекаутим код
 - uses: actions/checkout@master
...

Наверное чекаут нужно по другому написать?

Нет, здесь имеется ввиду что я использую экшен checkout, из репозитория actions, из ветки master, который будет чекаутить код, из события триггернувшего экшен.
Сделал для вас эксперимент, в ветке test испортил один тесткейс. Подробнее можете ознакомится в репозитории.

Если бы GitHub Actions еще не проглючивали один раз из 30 примерно, вообще было бы отлично. Но, может, починят.


По статье: тесты по-хорошему надо бы в контейнере запускать, который только что собрался, перед его публикацией. А не снаружи. А то может быть, что контейнер собрался битый по какой-то причине, и каюк. Continuous Deployment превратится в «Нет повести печальнее на свете, чем повесть о заклинившем ресете».

В данном случае я провожу только unit тестирование отдельных частей кода. По хорошему, конечно же надо добавлять services и проводить тестирование с базой, балансером и делать запросы.
Но и не стоит забывать, это ни в коем случае не production ready, это исключительно для знакомства с actions и маленьких домашних проектов.
По поводу глюков, я пробовал различные возможности и много баловался с yaml. Сумарно примерно 100-150 коммитов, но никаких зависаний и падений не заметил.

Спасибо за статью. Благодаря вам стало понятно, что если использовать нативные средства, то Gitlab CI поудобнее из за наличия Gitlab runner. Ни каких дополнительных сервисов, просто берём раннер и пишем под него скрипты теста-сборки-деплоя-откатов

Если у вас есть ресурсы и возможности для сопровождения gitlab, хранения артефактов и т.п. то конечно gitlab лучшее решение. С другой стороны, нет никаких ограничений на создание своих действий, упакованных в контейнер, которые можно использовать при помощи .
Но в любом случае мало компаний, готовых хранить код в GitHub. По этому альтернатив gitlab'у
очень мало
Честно говоря я даже и не искал альтернатив dockerhub, а как то по привычке, на автопилоте. В плане приватных репозиториев, в бесплатной версии гитхаб смотриться интереснее.
В любом случае, в хранилищах артефактов docker api одинаковое, и перейти на другой registry не составит труда.
Спасибо, что показали ещё одну фичу гитхаба)
Бегло прочитав про Travis пришел к выводу, что в нем удобно собирать и тестировать, но доставку с ним особо не придумаешь.

Вообще travis из коробки поддерживает довольно большое количество возможностей по деплою (линк), так что придумывать ничего не надо.
Да, но у меня VDS и тут без хитрости никак. Также actions позволяют быстро сделать хук например в Jenkins. И если бы я использовал GitHub packages все это было бы в рамках единой коробки без привлечения дополнительных сервисов.
Но actions не панацея, думаю выбор инструмента должен зависеть от проекта.
Спасибо за линк, как раз думал что-нибудь попробовать с lambda.
Sign up to leave a comment.

Articles