add break time entries and simplified time tracker ui #1522
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: Playwright Tests | |
| on: [push] | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shardIndex: [1, 2, 3, 4, 5, 6, 7, 8] | |
| shardTotal: [8] | |
| services: | |
| mailpit: | |
| image: 'axllent/mailpit:latest' | |
| ports: | |
| - 1025:1025 | |
| - 8025:8025 | |
| pgsql_test: | |
| image: postgres:15 | |
| env: | |
| PGPASSWORD: 'root' | |
| POSTGRES_DB: 'laravel' | |
| POSTGRES_USER: 'root' | |
| POSTGRES_PASSWORD: 'root' | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: "Checkout code" | |
| uses: actions/checkout@v7 | |
| - name: "Setup node" | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: '20.x' | |
| - name: "Setup PHP" | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.3' | |
| extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv | |
| coverage: none | |
| - name: "Run composer install" | |
| run: composer install -n --prefer-dist | |
| - name: "Prepare Laravel Application" | |
| run: | | |
| cp .env.ci .env | |
| php artisan key:generate | |
| php artisan passport:keys | |
| php artisan migrate --seed | |
| - name: "Install dependencies" | |
| run: npm ci | |
| - name: "Build Frontend" | |
| run: npm run build | |
| - name: "Install FrankenPHP" | |
| run: | | |
| ARCH="$(uname -m)" | |
| curl -fsSL "https://github.com/dunglas/frankenphp/releases/latest/download/frankenphp-linux-${ARCH}" -o /usr/local/bin/frankenphp | |
| chmod +x /usr/local/bin/frankenphp | |
| - name: "Run Laravel Octane Server" | |
| run: php artisan octane:start --server=frankenphp --host=127.0.0.1 --port=8000 --workers=4 --max-requests=500 > /dev/null 2>&1 & | |
| env: | |
| OCTANE_SERVER: frankenphp | |
| - name: "Install Playwright Browsers" | |
| run: npx playwright install --with-deps | |
| - name: "Run Playwright tests" | |
| run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} | |
| env: | |
| PLAYWRIGHT_BASE_URL: 'http://127.0.0.1:8000' | |
| MAILPIT_BASE_URL: 'http://localhost:8025' | |
| - name: "Upload blob report" | |
| uses: actions/upload-artifact@v7 | |
| if: always() | |
| with: | |
| name: blob-report-${{ matrix.shardIndex }} | |
| path: blob-report/ | |
| retention-days: 7 | |
| merge-reports: | |
| if: always() | |
| needs: [test] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: "Checkout code" | |
| uses: actions/checkout@v7 | |
| - name: "Setup node" | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: '20.x' | |
| - name: "Install dependencies" | |
| run: npm ci | |
| - name: "Download blob reports" | |
| uses: actions/download-artifact@v8 | |
| with: | |
| path: all-blob-reports | |
| pattern: blob-report-* | |
| merge-multiple: true | |
| - name: "Merge reports" | |
| run: npx playwright merge-reports --reporter html ./all-blob-reports | |
| - name: "Upload merged HTML report" | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| retention-days: 30 |