Przejdź do treści
Programowanie

CI/CD dla projektów PHP: automatyzacja wdrożeń krok po kroku

9 lipca 2025 7 min czytania

CI (Continuous Integration) i CD (Continuous Deployment lub Delivery) zamieniają wdrożenie z ręcznego, stresującego procesu w zautomatyzowaną rutynę. W projektach PHP setup nie jest skomplikowany, ale wymaga kilku kroków.

Co daje CI/CD

Każda zmiana kodu automatycznie uruchamia testy i sprawdzenia. Jeśli coś nie przechodzi, wiesz o tym zanim kod trafi na produkcję. CD idzie o krok dalej: po przejściu testów kod jest automatycznie wdrażany na środowisko staging lub produkcyjne. Zamiast ręcznego kopiowania plików przez FTP czy SSH masz powtarzalny, udokumentowany proces.

Popularne narzędzia

  • GitHub Actions - wbudowane w GitHub, darmowe dla publicznych repozytoriów, z limitem minut dla prywatnych.
  • GitLab CI/CD - integracja z GitLab, możliwość własnych runnerów.
  • Bitbucket Pipelines - jeśli używasz Bitbucket.
  • Jenkins - self-hosted, duże możliwości konfiguracji, wymaga więcej pracy przy setupie.

Podstawowy pipeline dla PHP

Minimalny pipeline powinien zawierać: instalację zależności przez Composer, sprawdzenie standardów kodu przez PHP_CodeSniffer lub Pint, uruchomienie testów przez PHPUnit i opcjonalnie analizę statyczną przez PHPStan lub Psalm.

Wdrożenie przez SSH i rsync

Dla prostych projektów PHP wdrożenie można zautomatyzować przez SSH. Pipeline łączy się z serwerem, pobiera kod z repozytorium, instaluje zależności i restartuje serwisy. Rsync przesyła tylko zmienione pliki, co przyspiesza wdrożenie przy dużych projektach.

Środowiska: dev, staging, produkcja

Dobrą praktyką jest posiadanie osobnych środowisk. Kod trafia najpierw na staging, gdzie jest testowany. Dopiero po akceptacji idzie na produkcję. Staging powinien być jak najbardziej zbliżony do produkcji: ta sama wersja PHP, ta sama struktura bazy, zbliżone dane testowe.