Урок 20
Непрерывная интеграция (CI/CD)
18 минCI/CD (Continuous Integration / Continuous Deployment) — это практика автоматизации сборки, тестирования и деплоя кода.
Что такое CI/CD?
- Continuous Integration: Автоматический запуск тестов при каждом коммите
- Continuous Delivery: Автоматическая подготовка к деплою
- Continuous Deployment: Автоматический деплой на продакшн
Преимущества CI/CD:
- Быстрое обнаружение ошибок
- Уверенность в качестве кода
- Ускорение релизов
- Меньше ручной работы
- Быстрое обнаружение ошибок
- Уверенность в качестве кода
- Ускорение релизов
- Меньше ручной работы
GitHub Actions
Самый популярный CI/CD инструмент. Бесплатен для публичных репозиториев.
Структура workflow:
# .github/workflows/tests.yml
name: Tests
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: \"8.2\"
extensions: mbstring, pdo_mysql
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Run tests
run: ./vendor/bin/phpunit
Пример полного пайплайна
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run tests
run: |
composer install
./vendor/bin/phpunit
deploy:
needs: test # Запускается только после успешных тестов
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to server
uses: appleboy/ssh-action@master
with:
host: \${{ secrets.HOST }}
username: \${{ secrets.USERNAME }}
key: \${{ secrets.SSH_KEY }}
script: |
cd /var/www/mysite
git pull origin main
composer install --no-dev
php artisan migrate --force
Secrets и переменные
Пароли и ключи хранятся в Settings → Secrets:
# Использование в workflow
env:
DB_PASSWORD: \${{ secrets.DB_PASSWORD }}
# или в шаге
- name: Deploy
env:
SSH_KEY: \${{ secrets.SSH_KEY }}
Badges
Добавьте бейдж статуса в README:

Другие CI/CD системы
| Система | Особенности |
|---|---|
| GitHub Actions | Встроен в GitHub, бесплатен для open source |
| GitLab CI | Мощный, встроен в GitLab |
| Jenkins | Self-hosted, максимально гибкий |
| CircleCI | Облачный, быстрый |
Поздравляем! Вы прошли теоретический курс PHP!
Вы освоили:
- Основы: синтаксис, переменные, операторы, условия, циклы
- Функции и область видимости
- Массивы и работа со строками
- ООП: классы, наследование, интерфейсы, трейты
- Веб-разработка: формы, GET/POST, валидация
- Базы данных через PDO
- Безопасность: XSS, SQL-инъекции, CSRF, хеширование
- Регулярные выражения
- Структуры данных и алгоритмы
- Тестирование: PHPUnit, TDD, моки
- CI/CD: автоматизация, GitHub Actions
- Основы: синтаксис, переменные, операторы, условия, циклы
- Функции и область видимости
- Массивы и работа со строками
- ООП: классы, наследование, интерфейсы, трейты
- Веб-разработка: формы, GET/POST, валидация
- Базы данных через PDO
- Безопасность: XSS, SQL-инъекции, CSRF, хеширование
- Регулярные выражения
- Структуры данных и алгоритмы
- Тестирование: PHPUnit, TDD, моки
- CI/CD: автоматизация, GitHub Actions
Что дальше? Практический курс!
Готовы применить знания на практике?
Переходите к курсу «PHP: Создаём блог с нуля» — там вы создадите полноценный проект:
- Настроите окружение с Docker
- Создадите блог с авторизацией
- Сделаете админ-панель
- Применить всё, что изучили здесь!
Переходите к курсу «PHP: Создаём блог с нуля» — там вы создадите полноценный проект:
- Настроите окружение с Docker
- Создадите блог с авторизацией
- Сделаете админ-панель
- Применить всё, что изучили здесь!
Другие варианты развития
- Фреймворки — Laravel или Symfony для крупных проектов
- API — создание REST API
- Микросервисы — современная архитектура
Главное правило: Код нужно писать каждый день. Даже 30 минут практики лучше, чем часы теории!
Ресурсы для продолжения:
- php.net — официальная документация
- Laravel.com — популярный фреймворк
- SymfonyCasts — видеокурсы
- PHP The Right Way — лучшие практики
- php.net — официальная документация
- Laravel.com — популярный фреймворк
- SymfonyCasts — видеокурсы
- PHP The Right Way — лучшие практики