GitHub Actions CI/CD для PHP — автодеплой на VPS за 30 хвилин
Стаття
Потрібна допомога з сайтом?
Опишіть задачу в Telegram — оціню й підкажу, з чого почати. Відповідь протягом доби.
Написати в Telegram
Безкоштовна консультація та оцінка. Відповідаю швидко.
GitHub Actions дозволяє автоматизувати тестування та деплой при кожному push. Ось готовий workflow для PHP проекту.
Структура workflow
.github/workflows/deploy.yml
Повний workflow
name: Deploy to Production
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: pdo_mysql, redis, gd
- run: composer install --no-dev
- run: ./vendor/bin/phpunit
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /var/www/html
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan cache:clear 2>/dev/null || true
Налаштування Secrets
GitHub repo → Settings → Secrets → New secret:
SSH_HOST, SSH_USER, SSH_PRIVATE_KEY
Telegram нотифікація
- name: Telegram Notification
uses: appleboy/telegram-action@master
with:
to: ${{ secrets.TELEGRAM_CHAT_ID }}
token: ${{ secrets.TELEGRAM_TOKEN }}
message: "✅ Deploy successful: ${{ github.sha }}"
Потрібне налаштування CI/CD? Замовте GitHub Actions.
Потрібна допомога з сайтом?
Опишіть задачу в Telegram — оціню й підкажу, з чого почати. Відповідь протягом доби.
Написати в Telegram
Безкоштовна консультація та оцінка. Відповідаю швидко.