В этой статье я расскажу о процессе автоматизации развертывания (деплоя) проекта на удаленном хостинге с использованием локального сервера, GitHub и FTP. Автоматизация этого процесса позволит значительно упростить и ускорить деплой проекта на удаленном сервере.
Шаг 1: Создание и настройка репозитория на GitHub Для начала, создадим новый репозиторий на GitHub и настроим его для работы с нашим проектом. Вот что нужно сделать:
- Перейдите на https://github.com, авторизуйтесь в своей учетной записи и нажмите кнопку «New» (Создать).
- Укажите имя репозитория, добавьте описание и выберите уровень видимости (public или private). Затем нажмите кнопку «Create repository» (Создать репозиторий). В своих проектах я обычно использую приватные репозитории.
Шаг 2: Настройка локального проекта и связь с удаленным репозиторием Теперь нужно настроить локальный проект и связать его с удаленным репозиторием на GitHub. Следуйте этим шагам:
- Откройте терминал или командную строку соответствующего приложения. Например, если вы используете локальный сервер Open Server, необходимо открыть его консоль (Зеленый флажок работающего сервера -> Дополнительно -> Консоль), если вы используете Docker - откройте консоль его среды.
- Перейдите в корневую директорию вашего проекта с помощью команды cd путь_к_проекту
- Инициализируйте локальный репозиторий командой git init
- Свяжите локальный репозиторий с удаленным на GitHub, используя команду git remote add origin URL_удаленного_репозитория . Вместо "URL_удаленного_репозитория" укажите URL вашего репозитория на GitHub. Пример "URL_удаленного_репозитория" одного из моих проектов "https://github.com/Stacss/like-feedback.git".
- Добавьте и зафиксируйте ваш проект в локальном репозитории с помощью команд git add . и git commit -m "Первоначальный коммит". Вместо "Первоначальный коммит" можно использовать любое сообщение коммита, описывающее ваше начальное состояние проекта.
- Отправьте ваш локальный репозиторий на GitHub с помощью команды git push -u origin master.
Шаг 3: Автоматический деплой с помощью GitHub Actions и FTP.
Теперь мы настроим автоматический деплой с локального сервера на ваш хостинг с помощью GitHub Actions и FTP. Для этого выполним следующие шаги:
- В вашем репозитории на GitHub откройте вкладку «Actions» (Действия).
- Нажмите на «Set up a workflow yourself» (Создать собственный workflow).
- Замените содержимое файла на следующий код, который определяет действие для автоматического деплоя проекта на хостинг:
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/ - Обратите внимание, что в "server-dir:" вы указываете путь к своему проекту на web сервере. На каждом хостинге пути к проекту разные, где-то достаточно ввести /mysite.ru/public_html/, где-то нужно ввести полный путь до вашего проекта. Поэкспериментируйте, не всегда получается с первого раза точно указать путь.
- Нажмите на кнопку «Start commit» (Начать коммит), введите сообщение коммита (например, «Добавление автоматического деплоя на хостинг») и нажмите на кнопку «Commit new file» (Зафиксировать новый файл).
- Добавьте три секрета для защиты ваших учетных данных FTP. Перейдите во вкладку «Settings» (Настройки) вашего репозитория на GitHub.
- В левой панели выберите «Secrets and variables», затем «Actions».
- Нажмите на кнопку «New repository secret» (Новый секрет репозитория).
- Создайте секреты с именами FTP_SERVER, FTP_USERNAME и FTP_PASSWORD, введя соответствующие учетные данные FTP в поля «Value» (Значение) каждого секрета. Необходимые значения возьмите в админ панели хостинга.
- Убедитесь, что все три секрета были добавлены и сохранены.
Поздравляю! Теперь ваш репозиторий настроен для автоматического деплоя проекта на хостинг каждый раз, когда вы делаете push в ветку master. GitHub Actions будет запускать ваш workflow, который клонирует репозиторий и автоматически деплоит проект на ваш хостинг с использованием FTP.
Теперь вы можете наслаждаться автоматическим деплоем проекта на хостинг с локального сервера при каждом push в ваш репозиторий на GitHub. Автоматизация этого процесса значительно упрощает развертывание проекта и освобождает вас от рутинных задач, позволяя сконцентрироваться на разработке.