Останнім часом я експериментую над тим, як покращити досвід CPanel для розробників Laravel, і, на щастя, я це зробив Успішний з моїми спробами. Ця стаття є одним з моїх численних експериментів з cPanel.
Я вже писав статтю про те, як налаштувати автоматичне розгортання, але цього разу ми дізнаємося, як це зробити за допомогою GitHub Actions.
Як підключити CPanel до GitHub По-перше, нам потрібно переконатися, що на нашій cPanel увімкнено SSH і підключено до нашого облікового запису GitHub
. Це дозволить нам клонувати наші приватні репозиторії.
Читати докладніше: Як підключити Cpanel до GitHub, Gitlab і Bitbucket і розгорнути приватні репозиторії
Початкове розгортання Laravel на CPanel Далі нам потрібно налаштувати наш додаток Laravel
на Cpanel. Також нам належить налаштувати базу даних додатків, smtp і інші облікові дані для нашого виробничого середовища та гарантувати, що наш CPanel обслуговує громадськість Laravel Каталог.
Читати докладніше: Як розгорнути проект Laravel на віртуальному хостингу Linux за 5 хвилин
Налаштування сценарію розгортання Bash
- Створіть директорію .github/workflows у базовому каталозі програми, якщо цього каталогу ще не існує.
- Створіть скрипт deploy.sh bash у директорії .github/workflow.
- Скопіюйте в deploy.sh наступний вміст BASH:
Замініть / path/to/project на шлях вашого застосунку Laravel на CPanel.
#!/bin/sh
# Change to the project directory.
cd ~/path/to/project
# Pull the latest changes from the git repository
git pull origin main
# Install/update composer dependencies
composer install --no-interaction
# Run database migrations
php artisan migrate --force
# Clear caches
php artisan cache:clear
# Clear and cache routes
php artisan route:cache
# Clear and cache config
php artisan config:cache
# Clear and cache views
php artisan view:cache
Цей скрипт вище містить усі необхідні команди, які виконуються щоразу, коли розгортається новий код. Ми завжди можемо налаштувати Цей скрипт базується на нашому проекті необхідності.
Налаштування робочого процесу дій на GitHub
- Створіть директорію . github/workflows у репозиторії застосунку на GitHub, якщо ця директорія ще не існує.
- Створіть файл з ім'ям deploy.yml у каталозі .github/workflows.
- Скопіюйте наступний вміст YAML в deploy.yml:
Замініть cpanel_username на ваше ім'я користувача CPanel, а project_dir на каталог розгорнутих додатків на CPanel.
name: Deploy
on:
push:
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
name: Build & Deploy Assets
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup SSH
run: |
mkdir -p ~/.ssh/
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
echo "${{ secrets.SSH_PUBLIC_KEY }}" > ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
- name: Deploy
run: |
ssh syncflux@${{ secrets.SERVER_IP }} 'bash -s' < ${{ github.workspace }}/.github/workflows/deploy.sh
Розділ Setup SSH нашого робочого процесу з'єднує наш екземпляр GitHub Action з нашою cPanel.
Розділ «Розгортання» нашого робочого процесу виконує наш сценарій bash розгортання на сервері CPanel через SSH.
Створення секретів дій на GitHub
- Приватний і публічний ключі можна знайти в каталозі ~/.ssh сервера CPanel.
- На GitHub.com перейдіть на сторінку налаштувань репозиторію програми.
- У розділі «Безпека» на бічній панелі виберіть « Секрети та змінні», а потім натисніть «Дії».
- Натисніть кнопку Новий секрет сховища і створіть SSH_PRIVATE_KEY, SSH_PUBLIC_KEY і SERVER_IP секрети відповідно.
При такому налаштуванні наш проект Laravel буде розгортатися на CPanel щоразу, коли наші дії на GitHub будуть успішно виконуватися.
Бонус
Якщо у вас також є фронтенд-ассети, які потрібно скомпілювати та розгорнути на cPanel, ви також можете зробити це за допомогою GitHub Actions.
Читати докладніше: Об'єднання ресурсів для додатків Laravel на CPanel за допомогою дії GitHub