← Назад в «Блог»
260
Обновлено: 20 октября 2025

Как настроить Github Actions

Неудобно гонять файлы на хостинг вручную, хочется чтобы при коммите изменённые файлы отправлялись автоматически. С этим нам поможет Github Actions.

Вводные данные

  • Хостинг — Beget
  • Редактор — Cursor
  • FPT-клиент — Forklift

Если у вас что-то отличается, ищите похожие кнопки, настройки.

План

  1. Создаём доступ на хостинге
  2. Прописываем Secrets
  3. Создаём файл workflow
  4. Делаем коммит, который запускает автозагрузку.

Создаём доступ

На хостинге создаём FTP-доступ. На Бегете это находится на главном экране.

  1. Прописываем логин, сохраняем
  2. Создаём пароль, сохраняем.
  3. В выпадающем списке выбираем путь до папки проекта. Если у вас такого нет, вы потом сможете прописать путь до папки.
  4. Сохраняем сервер.
  5. Кликаем на Включить SSH
  6. Нажимаем на Добавить

Прописываем Secrets

Переходим в настройки репозитория и нажимаем на Secrets and Variables и нажимаем Actions.

После этого нам необходимо нажать на кнопку New repository secret

После этого откроется форма для заполнения.

Здесь мы должны вписать те данные, которые мы сохраняли при создании FTP-доступа. Для каждого из нижеперечисленных надо создать свой Secret.

FTP_SERVER — название сервера

FTP_USERNAME — логин

FTP_PASSWORD — пароль

FTP_SERVER_DIR — путь до папки должен быть просто /, так как мы уже в FTP-доступе прописали путь до папки. Но если у вас не было выбора папки при создании FTP доступа, вы здесь указываете полный путь до папки. На конце обязательно должен быть /

В итоге это будет выглядеть так

Если вы писали что-то неправильно, не переживайте. Вы можете удалить Secret и создать заново.

Создаём файл deploy. yml

  1. В корне проекта создаём папку .github,
  2. Внутри папку workflows
  3. Внутри неё файл deploy.yml

Содержание файла deploy.yml

Мне его написала нейронка. Если вы используете Cursor, то попросите её написать файл под ваш проект.

name: Deploy Project

on:
  push:
    branches: [ main, master ]
    paths-ignore:
      - 'README.md'
      - '.github/**'
      - '.gitignore'
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
        
      - name: Deploy to production
        uses: SamKirkland/FTP-Deploy-Action@v4.3.4
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: ${{ secrets.FTP_SERVER_DIR }}
          dangerous-clean-slate: false
          dry-run: false
          exclude: |
            **/.git*
            **/.git*/**
            **/node_modules/**
            README.md
            .htpasswd
            .env
            .env.*
          local-dir: ./
          timeout: 60000
          protocol: ftp
          state-name: .ftp-deploy-sync-state.json 

Делаем коммит

Делаем коммит и после коммита должна запуститься загрузка на хостинг. Проверять во вкладке Actions

Вы можете кликнуть на него и посмотреть, как он проходил. Если будут какие-то ошибки, он покажет их здесь. После исправления ошибок можно перезапустить конкретно этот Action, чтобы не делать много коммитов.

Как перенести на другой сайт

У нас всё остается точно так же, кроме пользователя и пароля. Мы настраиваем переменные FTP_SERVER и FTP_SERVER_DIR так, чтобы они ссылались на основной сервер и директорию /, а сам путь вы уже указали при создании FPT на хостинге.

Когда вы создали новый FTP, который привязан к другому сайту, вам в секретах нужно заменить только логин и пароль.

Писал заметку для себя. Если вам пригодилось, влепите ниже лайкос ❤️

Полезно
1
1
Непонятно
Поделиться
Отправить
Линкануть
Вотсапнуть

Канал Дани в телеграме

В канале показываю, как разрабатываю продукты: нейронки, боты, пет-проекты, бизнес. Делюсь фишками о разработке и дизайне. Без рекламы.

Подписаться
← Назад в «Блог»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Контакты