Skip to content

fix(cdn): resolve the eight, and one of them was real #44

fix(cdn): resolve the eight, and one of them was real

fix(cdn): resolve the eight, and one of them was real #44

Workflow file for this run

name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
tests:
runs-on: ubuntu-latest
strategy:
# One leg failing should not hide the others. With fail-fast the first
# failure cancels the rest, so a PHP-version-specific break looks
# identical to a break on every version.
fail-fast: false
matrix:
php: [8.2, 8.3, 8.4]
laravel: [12.*]
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip
coverage: xdebug
- name: Install dependencies
env:
LARAVEL_VERSION: ${{ matrix.laravel }}
run: |
composer require "laravel/framework:${LARAVEL_VERSION}" --no-interaction --no-update
composer update --prefer-dist --no-interaction --no-progress
# The gate suites only. A bare `phpunit` also runs the Module suite —
# src/**/*Test.php — which carries known failures and is treated as
# visible debt rather than a gate (see .gitlab-ci.yml's module-suite-debt
# job, and the module-debt job below). Including it here meant this
# workflow could never be green, so it stopped meaning anything: the same
# rot as a check that always passes, arrived at from the other side.
- name: Execute tests with coverage
run: vendor/bin/phpunit --testsuite=Feature,Unit --coverage-clover=coverage.xml
- name: Upload coverage to Codecov
if: matrix.php == '8.3'
uses: codecov/codecov-action@v3
with:
files: ./coverage.xml
fail_ci_if_error: false
verbose: true
# The Module suite — src/**/*Test.php — reported, never gating.
#
# It carries known failures, and the number is worth seeing rather than
# hiding: 448 at the time of writing, and they are not 448 bugs. Roughly 114
# are class-not-found for classes owned by sibling packages (Core\Tenant\Models,
# Core\Agentic\Services) — tests that cannot pass in this repository at all;
# about 30 are one real defect, StorageUrlResolver being handed a CdnUrlBuilder
# where it wants a BunnyStorageService; the rest are ordinary assertion and
# status-code failures.
#
# continue-on-error rather than `|| true`, and the difference matters: this
# way the step's own result is visible in the run, so the count can be driven
# down. A step that swallows its exit code teaches nobody anything.
#
# When it reaches zero, fold --testsuite=Module into the job above and delete
# this one. Mirrors .gitlab-ci.yml's module-suite-debt job.
module-debt:
runs-on: ubuntu-latest
name: Module suite (reported, not gating)
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: dom, curl, libxml, mbstring, zip
coverage: none
- name: Install dependencies
run: composer install --prefer-dist --no-interaction --no-progress
- name: Execute the Module suite
run: vendor/bin/phpunit --testsuite=Module