Найти тему
@postnikovstas

Автоматическое развертывание (деплой) проекта на удаленном хостинге с использованием локального сервера, GitHub и FTP

В этой статье я расскажу о процессе автоматизации развертывания (деплоя) проекта на удаленном хостинге с использованием локального сервера, GitHub и FTP. Автоматизация этого процесса позволит значительно упростить и ускорить деплой проекта на удаленном сервере.

Так выглядит деплой по версии ИИ
Так выглядит деплой по версии ИИ

Шаг 1: Создание и настройка репозитория на GitHub Для начала, создадим новый репозиторий на GitHub и настроим его для работы с нашим проектом. Вот что нужно сделать:

  1. Перейдите на https://github.com, авторизуйтесь в своей учетной записи и нажмите кнопку «New» (Создать).
  2. Укажите имя репозитория, добавьте описание и выберите уровень видимости (public или private). Затем нажмите кнопку «Create repository» (Создать репозиторий). В своих проектах я обычно использую приватные репозитории.

Шаг 2: Настройка локального проекта и связь с удаленным репозиторием Теперь нужно настроить локальный проект и связать его с удаленным репозиторием на GitHub. Следуйте этим шагам:

  1. Откройте терминал или командную строку соответствующего приложения. Например, если вы используете локальный сервер Open Server, необходимо открыть его консоль (Зеленый флажок работающего сервера -> Дополнительно -> Консоль), если вы используете Docker - откройте консоль его среды.
  2. Перейдите в корневую директорию вашего проекта с помощью команды cd путь_к_проекту
  3. Инициализируйте локальный репозиторий командой git init
  4. Свяжите локальный репозиторий с удаленным на GitHub, используя команду git remote add origin URL_удаленного_репозитория . Вместо "URL_удаленного_репозитория" укажите URL вашего репозитория на GitHub. Пример "URL_удаленного_репозитория" одного из моих проектов "https://github.com/Stacss/like-feedback.git".
  5. Добавьте и зафиксируйте ваш проект в локальном репозитории с помощью команд git add . и git commit -m "Первоначальный коммит". Вместо "Первоначальный коммит" можно использовать любое сообщение коммита, описывающее ваше начальное состояние проекта.
  6. Отправьте ваш локальный репозиторий на GitHub с помощью команды git push -u origin master.

Шаг 3: Автоматический деплой с помощью GitHub Actions и FTP.

Теперь мы настроим автоматический деплой с локального сервера на ваш хостинг с помощью GitHub Actions и FTP. Для этого выполним следующие шаги:

  1. В вашем репозитории на GitHub откройте вкладку «Actions» (Действия).
  2. Нажмите на «Set up a workflow yourself» (Создать собственный workflow).
  3. Замените содержимое файла на следующий код, который определяет действие для автоматического деплоя проекта на хостинг:
    name: Deploy to Hosting
    on:
    push:
    branches:
    - master

    jobs:
    deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout Repository
    uses: actions/checkout@v2

    - name: Deploy to Hosting
    uses: SamKirkland/FTP-Deploy-Action@4.0.0
    with:
    server: ${{ secrets.FTP_SERVER }}
    username: ${{ secrets.FTP_USERNAME }}
    password: ${{ secrets.FTP_PASSWORD }}
    server-dir: /mysite.ru/public_html/
  4. Обратите внимание, что в "server-dir:" вы указываете путь к своему проекту на web сервере. На каждом хостинге пути к проекту разные, где-то достаточно ввести /mysite.ru/public_html/, где-то нужно ввести полный путь до вашего проекта. Поэкспериментируйте, не всегда получается с первого раза точно указать путь.
  5. Нажмите на кнопку «Start commit» (Начать коммит), введите сообщение коммита (например, «Добавление автоматического деплоя на хостинг») и нажмите на кнопку «Commit new file» (Зафиксировать новый файл).
  6. Добавьте три секрета для защиты ваших учетных данных FTP. Перейдите во вкладку «Settings» (Настройки) вашего репозитория на GitHub.
  7. В левой панели выберите «Secrets and variables», затем «Actions».
  8. Нажмите на кнопку «New repository secret» (Новый секрет репозитория).
  9. Создайте секреты с именами FTP_SERVER, FTP_USERNAME и FTP_PASSWORD, введя соответствующие учетные данные FTP в поля «Value» (Значение) каждого секрета. Необходимые значения возьмите в админ панели хостинга.
  10. Убедитесь, что все три секрета были добавлены и сохранены.

Поздравляю! Теперь ваш репозиторий настроен для автоматического деплоя проекта на хостинг каждый раз, когда вы делаете push в ветку master. GitHub Actions будет запускать ваш workflow, который клонирует репозиторий и автоматически деплоит проект на ваш хостинг с использованием FTP.

Теперь вы можете наслаждаться автоматическим деплоем проекта на хостинг с локального сервера при каждом push в ваш репозиторий на GitHub. Автоматизация этого процесса значительно упрощает развертывание проекта и освобождает вас от рутинных задач, позволяя сконцентрироваться на разработке.