Skip to content

Add API documentation generation with phpDocumentor #477

Add API documentation generation with phpDocumentor

Add API documentation generation with phpDocumentor #477

Workflow file for this run

name: pipeline
on: pull_request
permissions:
contents: read
pull-requests: write
jobs:
unit:
runs-on: ubuntu-latest
strategy:
matrix:
php: ['8.1', '8.2', '8.3', '8.4', '8.5']
dependencies: ['lowest', 'highest']
symfony-version: ['']
include:
- symfony-version: '5.4.*'
dependencies: 'highest'
php: '8.2'
- symfony-version: '6.4.*'
dependencies: 'highest'
php: '8.2'
- symfony-version: '7.4.*'
dependencies: 'highest'
php: '8.4'
env:
SYMFONY_REQUIRE: ${{ matrix.symfony-version || '>=6.4' }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
tools: flex
coverage: "none"
- name: Install Composer
uses: "ramsey/composer-install@v3"
with:
dependency-versions: "${{ matrix.dependencies }}"
- name: Tests
run: vendor/bin/phpunit --testsuite=unit
inspector:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: "none"
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: '22'
- name: Install Composer
uses: "ramsey/composer-install@v3"
- name: Tests
run: vendor/bin/phpunit --testsuite=inspector
conformance:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
coverage: "none"
- name: Setup Node
uses: actions/setup-node@v5
with:
node-version: '22'
- name: Install Composer
uses: "ramsey/composer-install@v3"
- name: Run server
run: php -S localhost:8000 examples/server/conformance/server.php &
- name: Wait for server to start
run: sleep 5
- name: Tests
run: |
exit_code=0
OUTPUT=$(npx @modelcontextprotocol/conformance server --url http://localhost:8000/) || exit_code=1
echo "$OUTPUT"
# Example: "Total: 3 passed, 16 failed"
passedTests=$(echo "$OUTPUT" | sed -nE 's/.*Total: ([0-9]+) passed.*/\1/p')
passedTests=${passedTests:-0}
REQUIRED_TESTS_TO_PASS=21
echo "Required tests to pass: $REQUIRED_TESTS_TO_PASS"
[ "$passedTests" -ge "$REQUIRED_TESTS_TO_PASS" ] || exit $exit_code
qa:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
coverage: "none"
- name: Composer Validation
run: composer validate --strict
- name: Install Composer
uses: "ramsey/composer-install@v3"
- name: Code Style PHP
run: vendor/bin/php-cs-fixer fix --dry-run
- name: PHPStan
run: vendor/bin/phpstan analyse
- name: Documentation
run: make docs