diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..25d2d27 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,76 @@ +name: Test + +on: + workflow_dispatch: + pull_request: + branches: + - master + - v2 # Temporary until v2 is merged into master + push: + branches: + - master + - v2 # Temporary until v2 is merged into master + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +permissions: {} + +jobs: + phpunit: + runs-on: ubuntu-latest + permissions: + contents: read + strategy: + matrix: + php: ['8.1', '8.2', '8.3', '8.4'] + dependency-versions: [lowest, highest] + coverage: [none] + exclude: + - php: '8.4' + dependency-versions: highest + coverage: none + include: + - php: '8.4' + dependency-versions: highest + coverage: xdebug + steps: + - uses: actions/checkout@v4 + + - uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: ${{ matrix.coverage }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - uses: ramsey/composer-install@v3 + with: + dependency-versions: ${{ matrix.dependency-versions }} + composer-options: --no-audit --optimize-autoloader + + - run: composer test -- --coverage-clover coverage.xml + if: ${{ matrix.coverage == 'xdebug' }} + + - run: composer test -- --no-coverage + if: ${{ matrix.coverage != 'xdebug' }} + + - uses: actions/upload-artifact@v4 + if: ${{ matrix.coverage == 'xdebug' }} + with: + name: coverage + path: coverage.xml + + coveralls: + needs: phpunit + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/download-artifact@v4 + with: + name: coverage + - uses: coverallsapp/github-action@v2 + with: + file: coverage.xml diff --git a/.gitignore b/.gitignore index b30f76a..05a0d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ /vendor/ /coverage/ -/composer.lock \ No newline at end of file +/composer.lock + +# PHPUnit +/.phpunit.cache +/coverage.xml diff --git a/composer.json b/composer.json index 9971b5f..db1e465 100644 --- a/composer.json +++ b/composer.json @@ -24,8 +24,8 @@ "vlucas/phpdotenv": "^5.6" }, "require-dev": { - "phpunit/phpunit": "^10.0", - "laravel/pint": "^1.13" + "laravel/pint": "^1.13", + "phpunit/phpunit": "^10.5" }, "scripts": { "test": "phpunit", @@ -37,4 +37,4 @@ }, "minimum-stability": "dev", "prefer-stable": true -} \ No newline at end of file +} diff --git a/phpunit.xml b/phpunit.xml index 902e853..8f3edfd 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,21 +1,21 @@ - + stopOnFailure="false" + cacheDirectory=".phpunit.cache" + backupStaticProperties="false"> tests - - + + src - - - \ No newline at end of file + + +