Деплой
Начать конечно нужно с деплоя, не будете же вы каждый раз вручную выкладывать документацию на сервер. Сделаем это через Github Actions.
Давайте сформулируем задачу.
Что мы хотим: автоматически деплоить сайт с документацией на облачный сервер.
Когда мы хотим: всякий раз, когда происходит обновление main-ветки.
Что должно происходить: должен собираться билд и деплоиться на сервер.
Окей, задача понятна. Но нужно больше конкретики:
- адрес сервера,
- логин и пароль для авторизации на сервере,
- адрес локальной папки с билдом,
- адрес папки назначения на сервере.
Давайте разбираться. С адресом сервера, логином и паролем все просто, это те же самые данные для подключения к серверу по протоколу FTP, который мы использовали ранее.
Теперь нужно передать эти данные в скрипт, который будет заходить на сервер и выкладывать сборку. Но хранить и передавать логины и пароли в незашифрованном виде небезопасно. Воспользуется Actions secrets and variables. Перейдите в раздел и создайте два секрета REG_LOGIN и REG_PASS:
Адрес локальной сборки мы знаем: ./build/
Остается добыть адрес папки на сервере, куда этот билд нужно положить. Ранее мы купили домен, настроили ssl-сертификат и выложили сайт на сервер вручную. То место, куда мы его выложили и есть корневая директория сайта на сервере. Еще ее можно подсмотреть в панели управления хостингом:
Теперь напишем промт для ИИ:
Напиши гитхаб экшн для автоматического деплоя сайта на облачный сервер. Используй библиотеку https://github.com/SamKirkland/FTP-Deploy-Action
Запускать экшн нужно каждый раз, когда происходит обновление main-ветки.
В такой момент нужно собирать билд и деплоить на сервер.
Адрес сервера: 32.32.171.954
Логин будет зашифрован в секретах репозитория под именем: REG_LOGIN
Пароль будет зашифрован в секретах репозитория под именем: REG_PASS
Адрес локальной папки с билдом: ./build/
Адрес папки на сервере: www/ds.ru
Не забывайте заводить задачи в issue и создавать отдельные ветки. Возьмите за правило все изменения прокидывать в отдельных ветках.
Отправим промт в чат и посмотрим, что получилось:
Супер! Сursor создал файл deploy.yml и настроил его по нашим требованиям.
Теперь запушьте изменения. Кстати, если вам пока сложно управляться с командами гита, попросите ИИ помочь вам с этим.
Создайте Pull Request и вмерджите его в main-ветку.
Откройте Github и перейдите в раздел Action, убедитесь что экшн завершился успешно:
Супер! Теперь все изменения main-ветки будут выкладываться на сайт автоматически.
Если в процессе вы столкнулись с какой-то ошибкой, копируйте ее и отправляйте в чат, ИИ поможет разобраться. Ну или нет :)