Деплой

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

Давайте сформулируем задачу.

Что мы хотим: автоматически деплоить сайт с документацией на облачный сервер.

Когда мы хотим: всякий раз, когда происходит обновление main-ветки.

Что должно происходить: должен собираться билд и деплоиться на сервер.

Окей, задача понятна. Но нужно больше конкретики:

Давайте разбираться. С адресом сервера, логином и паролем все просто, это те же самые данные для подключения к серверу по протоколу FTP, который мы использовали ранее.

Теперь нужно передать эти данные в скрипт, который будет заходить на сервер и выкладывать сборку. Но хранить и передавать логины и пароли в незашифрованном виде небезопасно. Воспользуется Actions secrets and variables. Перейдите в раздел и создайте два секрета REG_LOGIN и REG_PASS:

Introduction Docusaurus

Адрес локальной сборки мы знаем: ./build/

Introduction Docusaurus

Остается добыть адрес папки на сервере, куда этот билд нужно положить. Ранее мы купили домен, настроили ssl-сертификат и выложили сайт на сервер вручную. То место, куда мы его выложили и есть корневая директория сайта на сервере. Еще ее можно подсмотреть в панели управления хостингом:

Introduction Docusaurus

Теперь напишем промт для ИИ:

Напиши гитхаб экшн для автоматического деплоя сайта на облачный сервер. Используй библиотеку https://github.com/SamKirkland/FTP-Deploy-Action

Запускать экшн нужно каждый раз, когда происходит обновление main-ветки.

В такой момент нужно собирать билд и деплоить на сервер.

Адрес сервера: 32.32.171.954

Логин будет зашифрован в секретах репозитория под именем: REG_LOGIN

Пароль будет зашифрован в секретах репозитория под именем: REG_PASS

Адрес локальной папки с билдом: ./build/

Адрес папки на сервере: www/ds.ru

Не забывайте заводить задачи в issue и создавать отдельные ветки. Возьмите за правило все изменения прокидывать в отдельных ветках.

Отправим промт в чат и посмотрим, что получилось:

Introduction Docusaurus

Супер! Сursor создал файл deploy.yml и настроил его по нашим требованиям.

Теперь запушьте изменения. Кстати, если вам пока сложно управляться с командами гита, попросите ИИ помочь вам с этим.

Создайте Pull Request и вмерджите его в main-ветку.

Откройте Github и перейдите в раздел Action, убедитесь что экшн завершился успешно:

Introduction Docusaurus

Супер! Теперь все изменения main-ветки будут выкладываться на сайт автоматически.

Если в процессе вы столкнулись с какой-то ошибкой, копируйте ее и отправляйте в чат, ИИ поможет разобраться. Ну или нет :)