Деплой сайта на хостинг с помощью Github Actions

Подготовка

Для передачи данных понадобится ssh ключ. Заметка по созданию и добавлению ключа.

Хостинг должен поддерживать передачу данных по ssh. Ссылки на документацию по использованию ssh популярных хостинг-провайдеров:

SpaceWeb Beget Timeweb Reg.ru

Добавляем переменные в репозиторий

  1. Заходим в репозиторий
  2. Переходим на вкладку Settings

вкладка settings в репозитории на github

  1. В блоке Security выбираем Secrets and variables  >  Actions

пункт actions в блоке Security

  1. Необходимо создать 4 новых secret:
  • DEVELOP_PATH (<my_domain_ru>/public_html)
  • HOST
  • USERNAME
  • KEY (ssh-ключ)

Добавляем Github Action

  1. В корне проекта создаем папку .github
  2. В папке .github создаем папку workflows
  3. В workflows создаем конфиг-файл deploy.yml
  4. В конфиге указываем:
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-репозитории

Последние обновления

© 2023 — 2026 nbeam.ru