From 62248802194a6ab775f2f4f0644eafcf086891e5 Mon Sep 17 00:00:00 2001 From: Twyco Date: Wed, 16 Sep 2026 09:54:34 +0200 Subject: [PATCH] faster test app action --- .github/tests/test_and_check_app/action.yml | 80 +++++++++++++++++---- 1 file changed, 67 insertions(+), 13 deletions(-) diff --git a/.github/tests/test_and_check_app/action.yml b/.github/tests/test_and_check_app/action.yml index 148b553..2820ea1 100644 --- a/.github/tests/test_and_check_app/action.yml +++ b/.github/tests/test_and_check_app/action.yml @@ -1,18 +1,72 @@ -name: test_and_check_app -description: Build the test image and run all application checks +name: "Lint and Test API" +description: "Run Pint and the Pest test suite for the Laravel API" runs: using: composite steps: - - name: Test and check app - shell: bash - run: | - set -Eeuo pipefail + - 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 - docker buildx build \ - --file Dockerfile \ - --target test \ - --tag "local/kanbangit-test:${GITHUB_SHA}" \ - --progress plain \ - --load \ - . + - 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