name: "Lint and Test APP" description: "Run Pint and the Pest test suite" runs: using: composite steps: - name: Setup PHP uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 #v2.37.2 with: php-version: "8.5" extensions: mbstring, pdo_sqlite coverage: none tools: composer:v2 - name: Verify Composer lockfile run: | if [ ! -f composer.lock ]; then echo "::error::api/composer.lock not found" exit 1 fi shell: bash - name: Get Composer cache directory id: composer_cache run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT" shell: bash - name: Cache Composer packages uses: actions/cache@2c8a9bd7457de244a408f35966fab2fb45fda9c8 # v6.0.0 with: path: ${{ steps.composer_cache.outputs.dir }} key: ${{ runner.os }}-php-8.5-${{ hashFiles('api/composer.lock') }} - name: Setup pnpm uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v11.7.0 with: package-json-file: package.json - name: Setup Node.js uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: node-version: 22 cache: "pnpm" cache-dependency-path: "pnpm-lock.yaml" - name: Install dependencies run: pnpm install --frozen-lockfile shell: bash - name: Prepare environment file run: cp .env.example .env shell: bash - name: Install dependencies run: composer install --no-interaction --prefer-dist --no-progress shell: bash - name: Generate application key run: php artisan key:generate shell: bash - name: Generate Wayfinder routes and actions run: php artisan wayfinder:generate --with-form shell: bash - name: Build Vite app run: pnpm run build shell: bash - name: Run ci check run: composer run ci:check shell: bash