feature/nazwa-zadania-IDrelease/X.Y.ZNarzędzia: PHPUnit, Pest, Dusk, Cypress, GitHub Actions
| Środowisko | Cel | Dostęp | Deploy z | Uwagi |
|---|---|---|---|---|
| DEV | Praca lokalna | Developerzy | Branch lokalny | Docker, mocki, seedery |
| RA (Review App) | Test funkcjonalny brancha | QA, PM | Pull Request | Automatyczny, efemeryczny |
| RC (Release Candidate) | Weryfikacja wydania | QA, PM | release/X.Y.Z | Kopia prod |
| PROD | Użytkownicy | Użytkownicy końcowi | main + tag | Monitoring, rollback |
gh issue create --title "Dodaj rejestrację użytkownika" --label feature
git checkout -b feature/register-user-123
Przykład CI (GitHub Actions):
name: CI
on:
push:
branches: [ develop, feature/**, hotfix/** ]
pull_request:
jobs:
tests:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: app_test
ports: [3306:3306]
steps:
- uses: actions/checkout@v3
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- run: composer install
- run: php artisan migrate --env=testing
- run: php artisan test
release/X.Y.Z uruchamia:
Przykład deploy z tagu:
on:
push:
tags:
- 'v*'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: ssh user@server "cd /app && git pull && php artisan migrate --force"
git checkout tags/v1.2.3| Termin | Znaczenie |
|---|---|
| CI | Continuous Integration – automatyczne testowanie kodu przy każdej zmianie |
| CD | Continuous Deployment / Delivery – ciągłe wdrażanie lub przygotowanie do wdrożenia |
| Review App (RA) | Środowisko testowe na potrzeby PR |
| RC | Release Candidate – kandydat do wydania, ostatni etap testów |
| Deploy | Publikacja kodu aplikacji na środowisko |
| Pipeline | Ciąg kroków automatyzacji (build, test, deploy) |
| Tag | Wersja kodu, np. v1.2.3 |
| Semantic Release | System automatycznego tagowania wersji |
| Feature Flag | Przełącznik funkcjonalności bez deployu |
| Blue-Green deploy | Przełączalne środowiska produkcyjne |
| Rollback | Cofnięcie wdrożenia do poprzedniej wersji |