Loading...
Skip to Content

Mise en place d'une pipeline d'intégration continue pour des applications Laravel en utilisant GitHub Actions

Découvrez comment configurer une pipeline d'intégration continue pour une application Laravel en utilisant GitHub Actions et assurez-vous que votre code reste de haute qualité.

Accueil Articles Mise en place d'une pipeline d'intégration continue pour des applications Laravel en utilisant GitHub Actions
Mise en place d'une pipeline d'intégration continue pour des applications Laravel en utilisant GitHub Actions

Dans le développement logiciel moderne, l'intégration continue (CI) est essentielle pour assurer la qualité et la stabilité du code. Elle permet d'automatiser les tests, de vérifier que les modifications n’introduisent pas de bugs et de faciliter la collaboration entre développeurs. Cet article vous guidera pour configurer une pipeline d’intégration continue pour une application Laravel en utilisant GitHub Actions.

Pourquoi adopter l'intégration continue ?

Adopter une pipeline d'intégration continue apporte de nombreux avantages :

  • Automatisation des tests : Assurez-vous que chaque modification du code ne casse pas les fonctionnalités existantes.
  • Qualité de code constante : Appliquez automatiquement des règles de qualité de code.
  • Feedback rapide : Recevez un retour rapide pour détecter et corriger les problèmes au plus tôt.
  • Amélioration de la collaboration : Facilitez l'intégration des changements dans le codebase commun.

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

  • Une application Laravel hébergée dans un dépôt GitHub.
  • Des notions de base sur l’utilisation de GitHub Actions.

Étape 1 : Créer un fichier de workflow GitHub Actions

GitHub Actions est un service intégré à GitHub permettant de créer des workflows automatisés, parfaits pour mettre en place une pipeline CI.

1. Créez le fichier de workflow

Dans le répertoire de votre projet Laravel, créez un dossier nommé .github/workflows et un fichier ci.yml à l'intérieur.

mkdir -p .github/workflows
touch .github/workflows/ci.yml

2. Définissez le workflow

Ouvrez le fichier ci.yml et ajoutez la configuration de la pipeline CI :

name: CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.0'

      - name: Install dependencies
        run: composer install --prefer-dist --no-progress --no-suggest

      - name: Copy .env.example to .env
        run: cp .env.example .env

      - name: Generate application key
        run: php artisan key:generate

      - name: Create test database
        run: |
          sudo apt-get update
          sudo apt-get install -y sqlite3
          touch database/testing.sqlite

      - name: Run migrations
        run: php artisan migrate --database=sqlite

      - name: Run tests
        run: vendor/bin/phpunit --configuration phpunit.xml

Ce workflow déclenche la pipeline CI à chaque push ou pull_request vers la branche main. Il configure PHP, installe les dépendances, crée un environnement de test, configure une base de données SQLite, exécute les migrations et lance les tests unitaires.

Étape 2 : Configurer les variables d'environnement

Assurez-vous que votre fichier .env.example contient toutes les variables nécessaires pour l’environnement de test. Par exemple :

APP_NAME=LaravelApp
APP_ENV=testing
APP_KEY=base64:YOUR_KEY_HERE
APP_DEBUG=true
APP_URL=http://localhost

DB_CONNECTION=sqlite
DB_DATABASE=/path/to/database/testing.sqlite

CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

Ces variables sont nécessaires pour que votre application s’exécute correctement dans l’environnement de test configuré par GitHub Actions.

Étape 3 : Écrire des tests pour vos composants Laravel

Pour maximiser l’efficacité de l’intégration continue, il est essentiel de disposer d’une série de tests couvrant toutes les fonctionnalités critiques de votre application. Laravel propose des fonctionnalités intégrées pour les tests, y compris PHPUnit et des fonctionnalités spécifiques pour tester les composants d’interface utilisateur.

1. Créer un fichier de test

Utilisez la commande suivante pour générer un test :

php artisan make:test ExampleFeatureTest

2. Rédiger un exemple de test

Voici un exemple de fichier de test simple pour vérifier une route de votre application :

// tests/Feature/ExampleFeatureTest.php
namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleFeatureTest extends TestCase
{
    use RefreshDatabase;

    /** @test */
    public function it_displays_the_home_page()
    {
        $response = $this->get('/');
        $response->assertStatus(200);
    }

    /** @test */
    public function it_interacts_with_database_correctly()
    {
        // Créez un enregistrement fictif et testez l'interaction avec la base de données
    }
}

Assurez-vous de couvrir les fonctionnalités clés de votre application pour que la CI puisse détecter rapidement les régressions et autres erreurs.

Étape 4 : Commit et Push des modifications

Une fois le fichier de workflow et les tests configurés, ajoutez vos modifications au dépôt GitHub :

git add .
git commit -m "Setup CI for Laravel with GitHub Actions"
git push origin main

Étape 5 : Surveiller la pipeline CI

Rendez-vous dans l'onglet Actions de votre dépôt GitHub pour surveiller l’état de votre pipeline CI. Vous devriez voir le workflow s'exécuter pour chaque push ou pull request vers la branche main. Si tous les tests passent, cela signifie que votre pipeline CI est configuré correctement.

Conclusion

La mise en place d’une pipeline d’intégration continue pour vos applications Laravel à l’aide de GitHub Actions est une excellente manière d’assurer une qualité de code constante et d’améliorer la collaboration au sein de votre équipe. En suivant les étapes ci-dessus, vous pourrez facilement configurer une CI pour automatiser vos tests, réduire les erreurs et faciliter le déploiement. Cette méthode de travail est particulièrement utile pour les équipes de développement en Tunisie, où les exigences en matière de qualité de code augmentent dans les projets digitaux et technologiques.

Contactez-nous

Prêt à donner vie à votre projet ? Contactez-nous dès aujourd'hui et commençons à créer ensemble des solutions innovantes pour votre entreprise.
Nous sommes disponibles pour répondre à vos questions et discuter de nouveaux projets.