diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..592ffb3 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,60 @@ +name: tests + +on: + push: + branches: + - master + - '*.x' + pull_request: + schedule: + - cron: '0 0 * * *' + +permissions: + contents: read + +jobs: + tests: + runs-on: ubuntu-22.04 + + strategy: + fail-fast: true + matrix: + php: [8.1, 8.2, 8.3, 8.4] + laravel: [10, 11] + exclude: + - php: 8.1 + laravel: 11 + - php: 8.4 + laravel: 10 + + name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip + ini-values: error_reporting=E_ALL + tools: composer:v2 + coverage: none + + - uses: actions/checkout@v4 + name: Checkout private tools + with: + repository: laravel/nova + token: ${{ secrets.GITHUB_TOKEN }} + path: nova + ref: "main" + + - name: Install dependencies + run: | + composer update --no-interaction --no-progress --with="illuminate/contracts:^${{ matrix.laravel }}" + env: + COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' + + - name: Execute tests + run: vendor/bin/pest diff --git a/composer.json b/composer.json index d6df74c..d9cd781 100644 --- a/composer.json +++ b/composer.json @@ -8,6 +8,8 @@ "php": "^8.1", "composer-runtime-api": "^2.2", "fakerphp/faker": "^1.24", + "illuminate/contracts": "^10.48.23|^11.35", + "illuminate/support": "^10.48.23|^11.35", "orchestra/workbench": "^8.17|^9.13", "symfony/polyfill-php83": "^1.31" }, @@ -36,14 +38,17 @@ "Workbench\\Database\\Seeders\\": "workbench/database/seeders/" } }, - "repositories": [ - { "type": "composer", "url": "https://nova.laravel.com" } - ], + "repositories": { + "nova": { "type": "composer", "url": "https://nova.laravel.com" } + }, "config": { - "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true - } + }, + "preferred-install": { + "*": "auto" + }, + "sort-packages": true }, "extra": { "laravel": {