В одной из своих предыдущих статей я показал, как развернуть проект на VPS-сервере с помощью CircleCI. В этой статье я покажу, как проделать аналогичный процесс, но только используя Github Actions.
- Шаг 1: Сгенерируйте ключи SSH.
- Шаг 2: Скопируйте публичный ключ в authorized_keys
- Шаг 3: Скопируйте приватный ключ в буфер обмена
- Шаг 4: Прикрепите приватный ключ к репозиторию на Github
- Шаг 5: Настройте рабочий процесс Github Actions
Вот также хорошая статья, которая может вам понравиться, для WordPress разработчика, показывающая, как публиковать плагины в репозитории wp.org с помощью Github Actions.
Давайте двигаться дальше.
Для продолжения вам потребуется набор публичных и приватных ключей SSH. Если у вас их нет, выполните шаг 1, чтобы сгенерировать их.
Шаг 1: Сгенерируйте ключи SSH.
Вы можете перейти к шагу 2, если у вас уже есть ключи.
Входим на VPS с помощью SSH
Замените <SERVER_ADDRESS>
на правильный URL или IP вашего VPS.
1 | ssh root@<SERVER_ADRRESS> |
Генерируем SSH ключи
Оставьте passphrase
пустым.
Шаг 2: Скопируйте публичный ключ в authorized_keys
На VPS необходимо скопировать открытый SSH-ключ в ~/.ssh/authorized_keys
.
Если вы только что создали его, выполнив шаг 1 и сделайте это, выполнив следующую команду.
Шаг 3: Скопируйте приватный ключ в буфер обмена
Если вы сгенерировали его на VPS, скопируйте этот ключ любым удобным для вас способом. Например, вы можете использовать xclip, но я просто открою файл с помощью nano и скопирую содержимое вручную. �.
Если у вас возникли проблемы с тем, что ключ находится в неправильном формате и вы видите ошибку Load key “/home/mihdan/.ssh/deploy_key”: invalid format, которая обычно возникает из-за того, что в конце строки стоит «CR LF«, а не только «LF«, то вы можете легко преобразовать эту последовательность символов в любом текстовом редакторе.
А проще всего использовать следующую команду с локального терминала для копирования ключа:
Шаг 4: Прикрепите приватный ключ к репозиторию на Github
Перейдите в Настройки -> Секреты и создайте две секретные переменные.
DEPLOY_KEY
: Это приватный ключ, который вы скопировали на предыдущем шаге.SEVER_IP
: IP сервера или его адрес.
В корне вашего репозитория создайте следующий файл .github/workflows/deploy.yml
с таким содержимым:
Перед развертыванием проекта на сервере вы можете выполнить множество команд, которые могут вам понадобиться. Например, для компиляции вашего кода, его очистки, тестирования и т.д.
Здесь есть несколько нюансов. Вы должны заменить эти строки:
src: 'dist/'
— Содержимое этой папки будет загружено на сервер. Вы можете изменить его в соответствии со своими потребностями.dest: 'root@"${{secrets.SERVER_IP}}":/path/on/remote'
— При необходимости поправьте путь загрузки на удалённом сервере.
Вот и все.
Если у вас есть вопросы, предложения или вы нашли ошибку, пожалуйста, дайте мне знать в комментариях ниже.
Читать полностью www.kobzarev.com