|  | 
| 1 | 1 | name: Tests | 
| 2 | 2 | 
 | 
| 3 | 3 | on: | 
| 4 |  | -  push: | 
| 5 |  | -    branches: | 
| 6 |  | -      - master | 
| 7 |  | -  pull_request: | 
|  | 4 | +    push: | 
|  | 5 | +        branches: | 
|  | 6 | +            - master | 
|  | 7 | +    pull_request: | 
| 8 | 8 | 
 | 
| 9 | 9 | jobs: | 
| 10 |  | -  test: | 
| 11 |  | -    name: Pest - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - DB ${{ matrix.db }} ${{ matrix.dependency-version }} | 
| 12 |  | - | 
| 13 |  | -    runs-on: ubuntu-latest | 
| 14 |  | - | 
| 15 |  | -    strategy: | 
| 16 |  | -      fail-fast: false | 
| 17 |  | -      matrix: | 
| 18 |  | -        php: [ 8.3, 8.2, 8.1 ] | 
| 19 |  | -        laravel: [ 10.* ] | 
| 20 |  | -        db: [ 'mysql:8.0', 'mysql:5.7', 'mariadb:10.11', 'postgis/postgis:16-3.4', 'postgis/postgis:15-3.4', 'postgis/postgis:14-3.4', 'postgis/postgis:13-3.4', 'postgis/postgis:12-3.4' ] | 
| 21 |  | -        dependency-version: [ prefer-stable, prefer-lowest ] | 
| 22 |  | -        include: | 
| 23 |  | -          - laravel: 10.* | 
| 24 |  | -            testbench: ^8.0 | 
| 25 |  | - | 
| 26 |  | -    services: | 
| 27 |  | -      db: | 
| 28 |  | -        image: ${{ matrix.db }} | 
| 29 |  | -        env: | 
| 30 |  | -          MYSQL_ALLOW_EMPTY_PASSWORD: yes | 
| 31 |  | -          MYSQL_DATABASE: laravel_eloquent_spatial_test | 
| 32 |  | -          POSTGRES_DB: laravel_eloquent_spatial_test | 
| 33 |  | -          POSTGRES_USER: root | 
| 34 |  | -          POSTGRES_HOST_AUTH_METHOD: trust | 
| 35 |  | -        ports: | 
| 36 |  | -          - ${{ contains(matrix.db, 'postgis') && '5432' || '3306' }} | 
| 37 |  | -        options: >- | 
| 38 |  | -          ${{ (contains(matrix.db, 'postgis') && '--health-cmd="pg_isready"') || '--health-cmd="mysqladmin ping"' }} | 
| 39 |  | -          --health-interval=10s --health-timeout=5s --health-retries=3 | 
| 40 |  | -
 | 
| 41 |  | -    steps: | 
| 42 |  | -      - name: Checkout code | 
| 43 |  | -        uses: actions/checkout@v2 | 
| 44 |  | - | 
| 45 |  | -      - name: Setup PHP | 
| 46 |  | -        uses: shivammathur/setup-php@v2 | 
| 47 |  | -        with: | 
| 48 |  | -          php-version: ${{ matrix.php }} | 
| 49 |  | -          coverage: none | 
| 50 |  | - | 
| 51 |  | -      - name: Install dependencies | 
| 52 |  | -        run: | | 
| 53 |  | -          composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update | 
| 54 |  | -          composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction | 
| 55 |  | -
 | 
| 56 |  | -      - name: Execute tests | 
| 57 |  | -        env: | 
| 58 |  | -          DB_PORT: ${{ job.services.db.ports[contains(matrix.db, 'postgis') && '5432' || '3306'] }} | 
| 59 |  | -          DB_CONNECTION: ${{ contains(matrix.db, 'postgis') && 'pgsql' || 'mysql' }} | 
| 60 |  | -        run: vendor/bin/pest | 
|  | 10 | +    test: | 
|  | 11 | +        name: Pest - PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - DB ${{ matrix.db }} ${{ matrix.dependency-version }} | 
|  | 12 | + | 
|  | 13 | +        runs-on: ubuntu-latest | 
|  | 14 | + | 
|  | 15 | +        strategy: | 
|  | 16 | +            fail-fast: false | 
|  | 17 | +            matrix: | 
|  | 18 | +                php: [ 8.3, 8.2, 8.1 ] | 
|  | 19 | +                laravel: [ 11.*, 10.* ] | 
|  | 20 | +                db: [ 'mysql:8.0', 'mysql:5.7', 'mariadb:10.11', 'postgis/postgis:16-3.4', 'postgis/postgis:15-3.4', 'postgis/postgis:14-3.4', 'postgis/postgis:13-3.4', 'postgis/postgis:12-3.4' ] | 
|  | 21 | +                dependency-version: [ prefer-stable ] | 
|  | 22 | +                include: | 
|  | 23 | +                    -   laravel: 10.* | 
|  | 24 | +                        testbench: ^8.0 | 
|  | 25 | +                    -   laravel: 11.* | 
|  | 26 | +                        testbench: ^9.0 | 
|  | 27 | +                exclude: | 
|  | 28 | +                    -   laravel: 11.* | 
|  | 29 | +                        php: 8.1 | 
|  | 30 | + | 
|  | 31 | +        services: | 
|  | 32 | +            db: | 
|  | 33 | +                image: ${{ matrix.db }} | 
|  | 34 | +                env: | 
|  | 35 | +                    MYSQL_ALLOW_EMPTY_PASSWORD: yes | 
|  | 36 | +                    MYSQL_DATABASE: laravel_eloquent_spatial_test | 
|  | 37 | +                    POSTGRES_DB: laravel_eloquent_spatial_test | 
|  | 38 | +                    POSTGRES_USER: root | 
|  | 39 | +                    POSTGRES_HOST_AUTH_METHOD: trust | 
|  | 40 | +                ports: | 
|  | 41 | +                    - ${{ contains(matrix.db, 'postgis') && '5432' || '3306' }} | 
|  | 42 | +                options: >- | 
|  | 43 | +                    ${{ (contains(matrix.db, 'postgis') && '--health-cmd="pg_isready"') || '--health-cmd="mysqladmin ping"' }} | 
|  | 44 | +                    --health-interval=10s --health-timeout=5s --health-retries=3 | 
|  | 45 | +
 | 
|  | 46 | +        steps: | 
|  | 47 | +            -   name: Checkout code | 
|  | 48 | +                uses: actions/checkout@v2 | 
|  | 49 | + | 
|  | 50 | +            -   name: Setup PHP | 
|  | 51 | +                uses: shivammathur/setup-php@v2 | 
|  | 52 | +                with: | 
|  | 53 | +                    php-version: ${{ matrix.php }} | 
|  | 54 | +                    coverage: none | 
|  | 55 | + | 
|  | 56 | +            -   name: Install dependencies | 
|  | 57 | +                run: | | 
|  | 58 | +                    composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update | 
|  | 59 | +                    composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction | 
|  | 60 | +
 | 
|  | 61 | +            -   name: Set DB_CONNECTION env variable (PostGIS) | 
|  | 62 | +                if: contains(matrix.db, 'postgis') | 
|  | 63 | +                run: | | 
|  | 64 | +                    echo "DB_CONNECTION=pgsql" >> "$GITHUB_ENV" | 
|  | 65 | +
 | 
|  | 66 | +            -   name: Set DB_CONNECTION env variable (MariaDB & Laravel 11) | 
|  | 67 | +                if: contains(matrix.laravel, '11') && contains(matrix.db, 'mariadb') | 
|  | 68 | +                run: | | 
|  | 69 | +                    echo "DB_CONNECTION=mariadb" >> "$GITHUB_ENV" | 
|  | 70 | +
 | 
|  | 71 | +            -   name: Set DB_COLLATION env variable (Mysql 5.7 & Laravel 11) | 
|  | 72 | +                if: contains(matrix.laravel, '11') && contains(matrix.db, 'mysql:5.7') | 
|  | 73 | +                run: | | 
|  | 74 | +                    echo "DB_COLLATION=utf8mb4_unicode_ci" >> "$GITHUB_ENV" | 
|  | 75 | +
 | 
|  | 76 | +            -   name: Execute tests | 
|  | 77 | +                env: | 
|  | 78 | +                    DB_PORT: ${{ job.services.db.ports[contains(matrix.db, 'postgis') && '5432' || '3306'] }} | 
|  | 79 | +                    DB_CONNECTION: ${{ env.DB_CONNECTION || 'mysql' }} | 
|  | 80 | +                run: vendor/bin/pest | 
0 commit comments