Деплой сайта на хостинг с помощью Github Actions
Подготовка
Для передачи данных понадобится ssh ключ. Заметка по созданию и добавлению ключа.
Хостинг должен поддерживать передачу данных по ssh. Ссылки на документацию по использованию ssh популярных хостинг-провайдеров:
Добавляем переменные в репозиторий
- Заходим в репозиторий
- Переходим на вкладку
Settings
- В блоке
SecurityвыбираемSecrets and variables>Actions
- Необходимо создать 4 новых
secret:
- DEVELOP_PATH (
<my_domain_ru>/public_html) - HOST
- USERNAME
- KEY (ssh-ключ)
Добавляем Github Action
- В корне проекта создаем папку
.github - В папке
.githubсоздаем папкуworkflows - В
workflowsсоздаем конфиг-файлdeploy.yml - В конфиге указываем:
name: Deploy
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 👨💻 Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: '16'
- name: 💥 Install Dependencies
run: npm ci
- run: npm run build
- name: rsync deployments
uses: burnett01/rsync-deployments@5.2.1
with:
switches: -avzr --delete
path: public/
remote_path: ${{ secrets.DEVELOP_PATH }}
remote_host: ${{ secrets.HOST }}
remote_user: ${{ secrets.USERNAME }}
remote_key: ${{ secrets.KEY }}Документация экшена rsync-deployments
Ссылка на пример
Как всё выглядит в Github-репозитории