Replace annotations with attributes in the doc (#2932) #2379
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: "Continuous Integration" | |
| on: | |
| pull_request: | |
| branches: | |
| - "*.x" | |
| - "feature/*" | |
| push: | |
| env: | |
| fail-fast: true | |
| jobs: | |
| phpunit: | |
| name: "PHPUnit" | |
| runs-on: "ubuntu-22.04" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php-version: | |
| - "8.1" | |
| - "8.2" | |
| - "8.3" | |
| - "8.4" | |
| - "8.5" | |
| mongodb-version: | |
| - "8.0" | |
| - "7.0" | |
| - "6.0" | |
| driver-version: | |
| - "stable" | |
| topology: | |
| - "server" | |
| dependencies: | |
| - "highest" | |
| symfony-version: | |
| - "locked" | |
| proxy: | |
| - "lazy-ghost" | |
| include: | |
| # Test against lowest dependencies | |
| - dependencies: "lowest" | |
| php-version: "8.1" | |
| mongodb-version: "6.0" | |
| driver-version: "1.21.0" | |
| topology: "server" | |
| symfony-version: "locked" | |
| proxy: "lazy-ghost" | |
| # Test with Symfony 6.4 | |
| - topology: "server" | |
| php-version: "8.1" | |
| mongodb-version: "6.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "6.4" | |
| proxy: "lazy-ghost" | |
| # Test with a 6.0 replica set | |
| - topology: "replica_set" | |
| php-version: "8.2" | |
| mongodb-version: "6.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "lazy-ghost" | |
| # Test with a 8.0 replica set | |
| - topology: "replica_set" | |
| php-version: "8.2" | |
| mongodb-version: "8.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "lazy-ghost" | |
| # Test with ProxyManager | |
| - php-version: "8.2" | |
| mongodb-version: "6.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "proxy-manager" | |
| # Test with Native Lazy Objects | |
| - php-version: "8.4" | |
| mongodb-version: "8.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "native" | |
| # Test with extension 1.21 | |
| - topology: "server" | |
| php-version: "8.2" | |
| mongodb-version: "8.0" | |
| driver-version: "1.21.0" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "lazy-ghost" | |
| # Test with Symfony 7.4 LTS | |
| - topology: "server" | |
| php-version: "8.2" | |
| mongodb-version: "8.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "7.4" | |
| proxy: "lazy-ghost" | |
| # Test with Symfony 8 | |
| - topology: "server" | |
| php-version: "8.4" | |
| mongodb-version: "8.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: false | |
| proxy: "native" | |
| # Test removing optional dependencies | |
| - topology: "server" | |
| php-version: "8.4" | |
| mongodb-version: "8.0" | |
| driver-version: "stable" | |
| dependencies: "highest" | |
| symfony-version: "locked" | |
| proxy: "native" | |
| remove-optional-dependencies: true | |
| # Test with a sharded cluster | |
| # Currently disabled due to a bug where MongoDB reports "sharding status unknown" | |
| # - topology: "sharded_cluster" | |
| # php-version: "8.2" | |
| # mongodb-version: "6.0" | |
| # driver-version: "stable" | |
| # dependencies: "highest" | |
| # symfony-version: "locked" | |
| # proxy: "lazy-ghost" | |
| steps: | |
| - name: "Checkout" | |
| uses: "actions/checkout@v5" | |
| with: | |
| fetch-depth: 2 | |
| - name: Setup cache environment | |
| id: extcache | |
| uses: shivammathur/cache-extensions@v1 | |
| with: | |
| php-version: ${{ matrix.php-version }} | |
| extensions: "mongodb-${{ matrix.driver-version }}, bcmath" | |
| key: "extcache-v1" | |
| - name: Cache extensions | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.extcache.outputs.dir }} | |
| key: ${{ steps.extcache.outputs.key }} | |
| restore-keys: ${{ steps.extcache.outputs.key }} | |
| - name: "Install PHP" | |
| uses: "shivammathur/setup-php@v2" | |
| with: | |
| php-version: "${{ matrix.php-version }}" | |
| extensions: "mongodb-${{ matrix.driver-version }}, bcmath" | |
| coverage: "none" | |
| ini-values: "zend.assertions=1" | |
| - name: "Show driver information" | |
| run: "php --ri mongodb" | |
| # Not used for tests, skip transient dependencies | |
| - name: "Remove phpbench/phpbench" | |
| run: composer remove --no-update --dev phpbench/phpbench | |
| - name: "Remove optional dependencies" | |
| if: "${{ matrix.remove-optional-dependencies }}" | |
| run: | | |
| composer remove --no-update friendsofphp/proxy-manager-lts symfony/var-exporter | |
| composer remove --no-update --dev symfony/cache doctrine/orm doctrine/annotations | |
| composer remove --no-update --dev doctrine/coding-standard phpstan/phpstan phpstan/phpstan-deprecation-rule phpstan/phpstan-phpunit | |
| - name: "Install dependencies with Composer" | |
| uses: "ramsey/composer-install@v3" | |
| with: | |
| dependency-versions: "${{ matrix.dependencies }}" | |
| composer-options: "--prefer-dist" | |
| env: | |
| SYMFONY_REQUIRE: ${{ matrix.symfony-version }} | |
| - name: "Install latest Python version" | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.13' | |
| - id: setup-mongodb | |
| uses: mongodb-labs/drivers-evergreen-tools@master | |
| with: | |
| version: ${{ matrix.mongodb-version }} | |
| topology: ${{ matrix.topology }} | |
| - name: "Run PHPUnit" | |
| run: "vendor/bin/phpunit --exclude-group=atlas ${{ matrix.dependencies == 'lowest' && '--do-not-fail-on-deprecation --do-not-fail-on-warning --do-not-fail-on-notice' || '' }}" | |
| env: | |
| DOCTRINE_MONGODB_SERVER: ${{ steps.setup-mongodb.outputs.cluster-uri }} | |
| USE_LAZY_GHOST_OBJECT: ${{ matrix.proxy == 'lazy-ghost' && '1' || '0' }} | |
| USE_NATIVE_LAZY_OBJECT: ${{ matrix.proxy == 'native' && '1' || '0' }} | |
| CRYPT_SHARED_LIB_PATH: ${{ steps.setup-mongodb.outputs.crypt-shared-lib-path }} |