Деплой сайта с github actions
Содержание
Итак, мы хотим при коммите,пуше в репозиторий, заливать измененный код так же на наш сервер, автоматически.
С этим нам поможет github actions.
Кратко это будет происходить примерно так: когда код пушится в основную ветку репозитория, срабатывает действие github actions. В котором написано подключись к серверу и сделай там pull, или еще какие действия.
Порядок действий
Что нужно сделать, что это все заработало:
- У себя на локальном компьютере создать пару ключей, они добавятся в домашнюю папку
- Теперь на наш сервер с сайтом нужно добавить публичный ключ, который мы создали выше примерно такой командой
ssh-copy-id -i ~/.ssh/id_rsa.pub user@127.0.0.1
, либо через интерфейс - Теперь нужно в репозитории на github перейти в settings далее в secrets далее в actions и добавить туда наш приватный ключ, github это все шифрует.
- Добавляем так же туда в секреты, реквизиты нашего сервера и под кем туда заходить HOST, PATH,PORT,USER.
- Пишем задачу для деплоя, выглядеть она будет примерно так:
name: my deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: checkout project
uses: actions/checkout@v1
- name: push
uses: appleboy/ssh-action@master
with:
host: $
port: $
username: $
key: $
script_stop: true
script: |
git -C $ pull
Здесь мы делаем по пушу в ветку main, в докере контейнере будет поднята ubuntu-20.04. Далее с помощью плагина appleboy/ssh-action@master
мы подключимся к нашему серверу и выполним там git pull
.
После этого контейнер удалиться. Такие действия будут происходить после каждого пуша на сервер.
Файл должен лежать здесь [REPO]/.github/workflows/workflow.yml
После пуша сразу можно перейти во вкладку actions вашего репозитория и вживую посмотреть, как все команды из yml файла выполняются прямо там. Все наглядно видно.