В этой статье мы рассмотрим процесс создания репозитория на GitHub и настройки автоматического деплоя проекта на хостинг с использованием локального сервера и FTP. Этот подход позволит нам автоматизировать процесс деплоя и упростить развертывание проекта на удаленном сервере.
Шаг 1: Создание репозитория на GitHub
Первым шагом является создание нового репозитория на GitHub. Для этого перейдите на https://github.com, войдите в свою учетную запись и нажмите кнопку «New» (Создать). Задайте имя репозитория, описание и выберите настройки видимости (public или private). Нажмите кнопку «Create repository» (Создать репозиторий).
Шаг 2: Настройка локального проекта
Далее нам нужно настроить локальный проект и его репозиторий для связи с удаленным репозиторием на GitHub. Для этого выполните следующие действия:
Откройте терминал или командную строку.
Перейдите в корневую директорию вашего проекта с помощью команды
cd <путь_к_проекту>
Инициализируйте локальный репозиторий с помощью команды
git init
Свяжите локальный репозиторий с удаленным репозиторием на GitHub, используя команду
git remote add origin <URL_удаленного_репозитория>
Замените<URL_удаленного_репозитория>
на URL вашего репозитория на GitHub. Например, «https://github.com/Stacss/like-feedback.git»Добавьте и зафиксируйте ваш проект в локальном репозитории с помощью команд
git add .
иgit commit -m "Первоначальный коммит"
Вместо"Первоначальный коммит"
вы можете использовать любое сообщение коммита, описывающее ваше начальное состояние проекта.Отправьте ваш локальный репозиторий на GitHub с помощью команды
git push -u origin master
Шаг 3: Настройка автоматического деплоя с помощью GitHub Actions и FTP
Теперь настало время настроить автоматический деплой с локального сервера на ваш хостинг через FTP. Мы будем использовать инструмент Continuous Integration (CI) под названием GitHub Actions для выполнения этой задачи. Далее следуем шагам:
В вашем репозитории на 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: //здесь нужно указать папку вашего проекта на хостинге
Путь к проекту server-dir указывать в формате 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» (Значение) каждого секрета из админпанели личного кабинета Timeweb, где FTP_SERVER – это хост, FTP_USERNAME – это логин, FTP_PASSWORD – пароль.
Убедитесь, что все три секрета (
FTP_SERVER
,FTP_USERNAME
иFTP_PASSWORD
) были добавлены и сохранены.
Поздравляю! Теперь ваш репозиторий настроен для автоматического деплоя проекта на хостинг каждый раз, когда вы делаете push в ветку master, GitHub Actions будет запускать ваш workflow, который клонирует репозиторий и автоматически деплоит проект на ваш хостинг с использованием FTP.
Обратите внимание, что вы можете настроить этот процесс деплоя более подробно, добавив дополнительные шаги или настройки в ваш workflow. Это позволяет адаптировать его под ваши конкретные потребности и требования.
Теперь вы можете наслаждаться автоматическим деплоем проекта на хостинг с локального сервера при каждом push в ваш репозиторий на GitHub. Это значительно упрощает и ускоряет процесс развертывания проекта, освобождая вас от рутинных задач и позволяя сконцентрироваться на разработке.