tg-me.com/eshu_coding/185
Last Update:
Довольно важная и модная сейчас тема - автоматическое развертывание кода и в пределе - непрерывная поставка. После того как программист отправил несколько строк кода в репозиторий запускаются сонмы автотестов, если всё ок - строки попадают на прод или в грядущее большое обновление.
Для автоматизации развертывания и тестирования используются разные инструменты, но для пет проектов лучший выбор - Github Actions. В репозитории нужно лишь найти вкладку Actions и следуя указаниям добавить себе в репозиторий простейший пример.
Использовать Actions можно двумя путями (в т.ч. комбинируя их): для проверки работоспособности кода, прогоняя автотесты и для развертывания собранного ПО на сервер. Тестирование - отдельная тема, расскажу о нём потом, как разберусь до конца сам. В целом, документация довольно подробная, потому остановлюсь только на некоторых неочевидных моментах.
1. Github Actions позволяет выполнять консольные команды как на удаленном сервере, так и на виртуалке, выделяемой гитхабом на время работы скрипта. На этой виртуалке осуществляется компиляция и сборка, а также отправка готовой программы по назначению. Дисковое пространство виртуалки организовано довольно неочевидно, потому не стесняйтесь после каждого чиха делать
run: |
ls
pwd
Чтобы понять где вы находитесь и что происходит. Результат будет выведен в лог выполнения Action-а.
2. Для работы с внешним миром стоит воспользоваться готовыми решениями. Так, для исполнения скрипта на сервере можно воспользоваться пакетом appleboy/ssh-action@master, а для архивирования и отправки результата сборки - appleboy/scp-action@master
Главное - не забывать, что вы имеете дело со стандартным консольным линуксом. Практически всё, что можете сделать там - можно сделать и тут.
3. Приватная информация. К серверу надо логиниться, а раскрывать IP адрес и пароль от сервера или SSH-ключ - не комильфо. Специально для этого добавлены Секретки: вкладка Settings, там - Secrets. Туда можно приватную информацию и использовать её в скриптах по необходимости примерно таким образом: ${{ secrets.DOCKER_HUB_LOGIN }}.
Что мне особенно понравилось - посмотреть содержимое секреток так с ходу нельзя даже через аккаунт, только с адскими заморочками с помощью написания скрипта в Actions, который пошлёт куда-то во внешний мир информацию, например с помощью какого-то линуксового почтового клиента.
4. При сборке образов докера (подробнее расскажу о них в следующий) тоже не стоит забывать, что при сборке из файла также доступна линуксовая виртуалка, которая умеет во все стандартные команды (т.е. не стесняйтесь сделать ls), а еще оно может исполнять питоновские скрипты прямо во время сборки образа.
Вообще же примеры сборки и развертывания можно посмотреть в моем репозитории: в файловую систему, в докер.
#кодинг
#devops
BY Эшу быдлокодит

Share with your friend now:
tg-me.com/eshu_coding/185