name: tests on: push: branches: - develop - main - master - workos pull_request: branches: - develop - main - master - workos jobs: ci: runs-on: ubuntu-latest strategy: matrix: php-version: ['8.4', '8.5'] steps: - name: Checkout code uses: actions/checkout@v6 # ------------------------- # Cache Composer # ------------------------- - name: Cache Composer dependencies uses: actions/cache@v4 with: path: ~/.composer/cache key: composer-${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} restore-keys: | composer-${{ runner.os }}-${{ matrix.php-version }}- # ------------------------- # Cache Node # ------------------------- - name: Cache Node dependencies uses: actions/cache@v4 with: path: ~/.npm key: node-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | node-${{ runner.os }}- - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} tools: composer:v2 coverage: none - name: Setup Node uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' # ------------------------- # Install dependencies # ------------------------- - name: Install Node Dependencies run: npm ci - name: Install PHP Dependencies run: composer install --no-interaction --prefer-dist --optimize-autoloader --no-progress # ------------------------- # Laravel setup # ------------------------- - name: Prepare environment run: | cp .env.example .env php artisan key:generate # ------------------------- # Build (optional – remove if not needed for tests) # ------------------------- - name: Build Assets run: npm run build # ------------------------- # Run tests (parallel) # ------------------------- - name: Run Tests run: php artisan test --parallel