Merge pull request #2556 from anurag0979/fix/2552-install-config-save #906
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Admin | Playwright Tests | |
| on: [push, pull_request] | |
| permissions: | |
| contents: read | |
| env: | |
| FORCE_COLOR: 1 | |
| jobs: | |
| admin_playwright_test: | |
| runs-on: ${{ matrix.operating-systems }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| operating-systems: [ubuntu-latest] | |
| php-versions: ['8.3'] | |
| node-version: ['22.13.1'] | |
| shard-index: [1,2,3,4,5,6] | |
| shard-total: [6] | |
| name: Admin | Playwright Tests | Shard ${{ matrix.shard-index }} Of ${{ matrix.shard-total }} | |
| services: | |
| mysql: | |
| image: mysql:8.0 | |
| env: | |
| MYSQL_ROOT_PASSWORD: root | |
| MYSQL_DATABASE: krayin | |
| ports: | |
| - 3306 | |
| options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php-versions }} | |
| extensions: curl, fileinfo, gd, intl, mbstring, openssl, pdo, pdo_mysql, tokenizer, zip | |
| ini-values: error_reporting=E_ALL | |
| tools: composer:v2 | |
| - name: Set Up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install Node.js Dependencies | |
| run: npm install | |
| working-directory: packages/Webkul/Admin | |
| - name: Install Playwright Browsers | |
| run: npx playwright install --with-deps | |
| working-directory: packages/Webkul/Admin | |
| - name: Setting Environment | |
| run: | | |
| cp .env.example .env | |
| sed -i "s|^\(DB_HOST=\s*\).*$|\1127.0.0.1|" .env | |
| sed -i "s|^\(DB_PORT=\s*\).*$|\1${{ job.services.mysql.ports['3306'] }}|" .env | |
| sed -i "s|^\(DB_DATABASE=\s*\).*$|\1krayin|" .env | |
| sed -i "s|^\(DB_USERNAME=\s*\).*$|\1root|" .env | |
| sed -i "s|^\(DB_PASSWORD=\s*\).*$|\1root|" .env | |
| sed -i "s|^\(APP_DEBUG=\s*\).*$|\1true|" .env | |
| sed -i "s|^\(APP_URL=\s*\).*$|\1http://127.0.0.1:8000|" .env | |
| cat .env | |
| - name: Install Composer Dependencies | |
| run: composer install | |
| - name: Running Krayin Installer | |
| run: php artisan krayin-crm:install --skip-env-check --skip-admin-creation | |
| - name: Clear Laravel Caches | |
| run: php artisan optimize:clear | |
| - name: Verify Activity Binding | |
| run: | | |
| php artisan tinker --execute=" | |
| // 1) Laravel container binding (needed by repositories) | |
| if (! app()->bound(Webkul\\Activity\\Contracts\\Activity::class)) { | |
| throw new RuntimeException('Activity contract is NOT bound in Laravel container'); | |
| } | |
| // 2) Concord model-proxy registry (needed by ActivityProxy::modelClass()) | |
| \$concord = app('concord'); | |
| if (! \$concord->model(Webkul\\Activity\\Contracts\\Activity::class)) { | |
| throw new RuntimeException('Activity contract is NOT registered in Concord model registry'); | |
| } | |
| dump(app()->make(Webkul\\Activity\\Contracts\\Activity::class)::class); | |
| dump(\$concord->model(Webkul\\Activity\\Contracts\\Activity::class)); | |
| " | |
| # - name: Seed Product Table | |
| # run: php artisan db:seed --class="Webkul\\Installer\\Database\\Seeders\\ProductTableSeeder" | |
| - name: Start Laravel server | |
| run: | | |
| php artisan serve --host=0.0.0.0 --port=8000 > server.log 2>&1 & | |
| echo "Waiting for server to start..." | |
| timeout 30 bash -c 'until curl -s http://127.0.0.1:8000 > /dev/null; do sleep 1; done' | |
| - name: Run All Playwright Tests | |
| env: | |
| BASE_URL: 'http://127.0.0.1:8000' | |
| run: | | |
| npx playwright test --reporter=list --config=tests/e2e-pw/playwright.config.ts --shard=${{ matrix.shard-index }}/${{ matrix.shard-total }} | |
| working-directory: packages/Webkul/Admin | |
| - name: Upload Test Results | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: test-results-${{ matrix.shard-index }}-${{ github.run_id }}-${{ github.run_number }} | |
| path: packages/Webkul/Admin/tests/e2e-pw/test-results | |
| retention-days: 1 |