@@ -14,22 +14,22 @@ jobs:
1414 max-parallel : 1
1515 matrix :
1616 os : [ ubuntu-latest ]
17- php : [ 8.2 , 8.3 , 8.4 ]
18- laravel : [ 12 .* ]
17+ php : [ 8.3 , 8.4 , 8.5 ]
18+ laravel : [ 13 .* ]
1919 stability : [ prefer-lowest, prefer-stable ]
2020
2121 name : P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
2222
2323 steps :
2424 - name : Checkout code
25- uses : actions/checkout@v5
25+ uses : actions/checkout@v6
2626
2727 - name : Setup PHP
2828 uses : shivammathur/setup-php@v2
2929 with :
3030 php-version : ${{ matrix.php }}
3131 extensions : dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
32- coverage : none
32+ coverage : pcov
3333
3434 - name : Setup problem matchers
3535 run : |
@@ -41,20 +41,41 @@ jobs:
4141 composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
4242 composer update --${{ matrix.stability }} --prefer-dist --no-interaction
4343
44- - name : Execute tests
44+ - name : Copy PHPUnit configuration
4545 run : cp phpunit.xml.dist phpunit.xml
4646
47- - name : Execute tests
48- run : vendor/bin/pest
47+ - name : Verify Postman parity matrix
48+ run : composer postman:parity
49+
50+ # Default suite only (unit, feature, manual skips) — no live DocuWare required.
51+ - name : Run Pest tests (default suite)
52+ run : composer test
53+
54+ # One matrix cell hits the live API to limit tenant traffic and rate limits (sequential tests in-process).
55+ - name : Run DocuWare integration tests
56+ if : matrix.php == '8.3' && matrix.stability == 'prefer-stable'
4957 env :
5058 DOCUWARE_URL : ${{ secrets.DOCUWARE_URL }}
5159 DOCUWARE_USERNAME : ${{ secrets.DOCUWARE_USERNAME }}
5260 DOCUWARE_PASSWORD : ${{ secrets.DOCUWARE_PASSWORD }}
61+ DOCUWARE_PASSPHRASE : ${{ secrets.DOCUWARE_PASSPHRASE }}
5362 DOCUWARE_COOKIES : ${{ secrets.DOCUWARE_COOKIES }}
63+ DOCUWARE_TESTS_FILE_CABINET_ID : ${{ secrets.DOCUWARE_TESTS_FILE_CABINET_ID }}
64+ DOCUWARE_TESTS_DIALOG_ID : ${{ secrets.DOCUWARE_TESTS_DIALOG_ID }}
65+ DOCUWARE_TESTS_BASKET_ID : ${{ secrets.DOCUWARE_TESTS_BASKET_ID }}
66+ DOCUWARE_TESTS_ORGANIZATION_ID : ${{ secrets.DOCUWARE_TESTS_ORGANIZATION_ID }}
67+ DOCUWARE_TESTS_GROUP_ID : ${{ secrets.DOCUWARE_TESTS_GROUP_ID }}
68+ DOCUWARE_TESTS_ROLE_ID : ${{ secrets.DOCUWARE_TESTS_ROLE_ID }}
69+ run : |
70+ if [ -z "$DOCUWARE_URL" ] || [ -z "$DOCUWARE_USERNAME" ] || [ -z "$DOCUWARE_PASSWORD" ]; then
71+ echo "Skipping DocuWare integration (DOCUWARE_* secrets not configured)."
72+ exit 0
73+ fi
74+ composer test:live
5475
5576 - name : Store Log Artifacts
5677 if : failure()
57- uses : actions/upload-artifact@v5
78+ uses : actions/upload-artifact@v6
5879 with :
5980 name : Store report artifacts
6081 path : ./vendor/orchestra/testbench-core/laravel/storage/logs
0 commit comments