- 1. Setting Up GitHub Actions
 - 2. Setting up the Testing Environment
 - 3. Running Pest Tests
 - 4. Caching Dependencies
 
Continuous Integration (CI) has become a crucial part of modern development workflows. GitHub Actions offers a convenient and powerful platform for setting up CI pipelines right within your GitHub repositories. When combined with Laravel and its expressive Pest testing tool, you can ensure that your application maintains high code quality standards with every commit.
1. Setting Up GitHub Actions
To get started, you'll need a .github/workflows directory in your Laravel project. Here, you can define the workflows for your project.
Create a new file inside this directory, named pest-tests.yml.
name: Run Pest Tests
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  run-tests:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v2
2. Setting up the Testing Environment
Before running the tests, you need to set up PHP and any other services, such as MySQL:
    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: 8.0
    - name: Install dependencies
      run: composer install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
    - name: Set up Laravel environment
      run: cp .env.testing .env
3. Running Pest Tests
With everything set up, you can now instruct GitHub Actions to run your Pest tests:
    - name: Run Pest tests
      run: ./vendor/bin/pest
4. Caching Dependencies
To speed up your test runs, consider caching your composer dependencies:
    - name: Get Composer cache directory
      id: composer-cache
      run: echo "::set-output name=dir::$(composer config cache-files-dir)"
    - name: Cache dependencies
      uses: actions/cache@v2
      with:
        path: ${{ steps.composer-cache.outputs.dir }}
        key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
        restore-keys: |
          ${{ runner.os }}-composer-
By integrating Pest tests into your GitHub Actions pipeline, you enhance the reliability and quality of your Laravel application. Not only does this setup catch potential errors early in the development process, but it also ensures that every push or pull request meets the required code standards.
Automating tests using GitHub Actions with Pest provides a seamless and efficient CI/CD experience, ensuring your Laravel applications are robust, error-free, and ready for production.
Interested in proving your knowledge of this topic? Take the PHP Fundamentals certification.
PHP Fundamentals
Covering the required knowledge to create and build web applications in PHP.
$99