Exemple bàsic de CI amb GitHub Actions i Laravel
Introducció
Aquest és el primer post de la sèrie dedicada a la CI/CD (Integració i Desplegament Continus). Aquí aprendrem a configurar un workflow bàsic de CI per a un projecte Laravel, utilitzant GitHub Actions, de manera que s’executin proves automàtiques cada cop que fem un push al nostre repositori.
Aquesta pràctica t’ajudarà a detectar errors abans d’integrar canvis al projecte principal.
Prerequisits
- Un projecte Laravel ja creat i pujat a GitHub.
- PHPUnit configurat (habitualment ja ho està per defecte).
- Coneixements bàsics de Git i GitHub.
- Accés a GitHub Actions (disponible per a repositoris públics i privats).
Pas 1: Crea la carpeta de workflows
Dins del teu projecte (al directori arrel), crea les següents carpetes:
mkdir -p .github/workflows
Pas 2: Afegeix un workflow de CI
Dins de .github/workflows, crea un arxiu amb el nom ci.yml.
Contingut bàsic per fer córrer les proves PHPUnit cada cop que es faci un push a qualsevol branca:
name: Run Laravel Tests
on:
push:
branches: [ "*" ]
jobs:
laravel-tests:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: testing
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping --silent"
--health-interval=10s
--health-timeout=5s
--health-retries=3
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, pdo, mysql
coverage: none
- name: Install dependencies
run: |
composer install --no-progress --prefer-dist
cp .env.example .env
php artisan key:generate
- name: Wait for MySQL
run: sleep 15
- name: Run migrations
run: php artisan migrate --force
- name: Run tests
run: php artisan test
Nota important: .env per a proves
Assegura’t que la teva .env.example tingui els paràmetres de connexió a la base de dades de proves:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=testing DB_USERNAME=root DB_PASSWORD=root
Resultat esperat
Quan facis un push, GitHub executarà aquest workflow i et mostrarà si les proves passen o fallen. Ho podràs veure a la pestanya Actions del teu repositori a GitHub.
Tags recomanats
CI/CD, GitHub Actions, Laravel, PHPUnit, Integració Contínua, Automatització, DevOps



