diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 95f8965b..a1089680 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -127,30 +127,39 @@ jobs: path: app/storage/logs stub-tests: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: + os: [ubuntu-latest, windows-latest] php: [8.1, 8.0] laravel: [9.*] dependency-version: [prefer-lowest, prefer-stable] - name: Test Stubs P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} + name: Test Stubs ${{ matrix.os }} - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} steps: - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} - extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, mysql, mysqli, pdo_mysql + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, mysql, mysqli, pdo_mysql, fileinfo coverage: none - name: Setup Laravel run: | - composer create-project laravel/laravel:^9 . + composer create-project laravel/laravel:^9.3 . composer require protonemedia/laravel-splade - rm -rf vendor/protonemedia/laravel-splade + + - name: Remove installed Splade (Unix) + run: rm -rf vendor/protonemedia/laravel-splade + if: matrix.os == 'ubuntu-latest' + + - name: Remove installed Splade (Windows) + run: rd "vendor/protonemedia/laravel-splade" /s /q + shell: cmd + if: matrix.os == 'windows-latest' - name: Checkout code uses: actions/checkout@v2 @@ -163,18 +172,53 @@ jobs: php artisan splade:install - name: Install NPM dependencies + run: npm i + + - name: Remove installed Splade and copy front-end build from Checkout (Unix) run: | - npm i rm -rf node_modules/@protonemedia/laravel-splade/dist cp -R vendor/protonemedia/laravel-splade/dist node_modules/@protonemedia/laravel-splade/ + if: matrix.os == 'ubuntu-latest' + + - name: Remove installed Splade and copy front-end build from Checkout (Windows) + run: | + rd "node_modules/@protonemedia/laravel-splade/dist" /s /q + mkdir "node_modules/@protonemedia/laravel-splade/dist" + xcopy "vendor/protonemedia/laravel-splade/dist" "node_modules/@protonemedia/laravel-splade/dist" /E /I + shell: cmd + if: matrix.os == 'windows-latest' - name: Compile assets run: npm run build - - name: Start SSR server + - name: Run Laravel Server (Unix) + run: php artisan serve & + if: matrix.os == 'ubuntu-latest' + + - name: Run Test (Unix) + run: php vendor/protonemedia/laravel-splade/TestStubs.php + if: matrix.os == 'ubuntu-latest' + + - name: Run Laravel Server (Windows) and Run Test + run: | + start /b cmd /v:on /c "(php artisan serve) &" + php vendor/protonemedia/laravel-splade/TestStubs.php + shell: cmd + if: matrix.os == 'windows-latest' + + - name: Start SSR server (Unix) run: | echo "SPLADE_SSR_ENABLED=true" >> .env node bootstrap/ssr/ssr.mjs & + if: matrix.os == 'ubuntu-latest' - - name: Run Test command + - name: Run Test command (Unix) run: php artisan splade:ssr-test + if: matrix.os == 'ubuntu-latest' + + - name: Start SSR server (Windows) and Run Test command + run: | + echo "SPLADE_SSR_ENABLED=true" >> .env + node bootstrap/ssr/ssr.mjs & + php artisan splade:ssr-test + if: matrix.os == 'windows-latest' diff --git a/TestStubs.php b/TestStubs.php new file mode 100644 index 00000000..739ea0d9 --- /dev/null +++ b/TestStubs.php @@ -0,0 +1,73 @@ + get(), 1000); + +$needles = [ + '