From 37cacb9503c4beee67a51f1d3333bf8c07041889 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 13 Nov 2023 15:22:57 +0330 Subject: [PATCH 01/17] scripts added to composer; --- composer.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/composer.json b/composer.json index 94b049785..a415657a3 100644 --- a/composer.json +++ b/composer.json @@ -57,6 +57,11 @@ ] } }, + "scripts": { + "test": "./vendor/bin/phpunit", + "test:group": "./vendor/bin/phpunit --group test", + "test:coverage": "./vendor/bin/phpunit --coverage-clover ./coverage.xml" + }, "config": { "platform": { "php": "8.1" From 7cf995d4e7e47675441c2a201b25f5c29510ddc6 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 13 Nov 2023 15:23:17 +0330 Subject: [PATCH 02/17] Docker configuration updated; --- Dockerfile | 15 ++++----------- docker-compose.yml | 13 +++++-------- 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5d22eb513..818a3a1fb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,12 @@ -ARG PHP_VERSION=8.1 - -FROM php:${PHP_VERSION}-cli +FROM php:8.1-cli +# Install extensions RUN apt-get update && \ apt-get install -y autoconf pkg-config libssl-dev git unzip libzip-dev zlib1g-dev && \ pecl install mongodb && docker-php-ext-enable mongodb && \ pecl install xdebug && docker-php-ext-enable xdebug && \ docker-php-ext-install -j$(nproc) zip -COPY --from=composer:2.6.2 /usr/bin/composer /usr/local/bin/composer - +# Install Composer +RUN curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer ENV COMPOSER_ALLOW_SUPERUSER=1 - -WORKDIR /code - -COPY ./ ./ - -CMD ["bash", "-c", "composer install && ./vendor/bin/phpunit --testdox"] diff --git a/docker-compose.yml b/docker-compose.yml index fec4aa191..89490e9f3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,14 @@ version: '3.5' services: - tests: - container_name: tests + app: tty: true - build: - context: . - dockerfile: Dockerfile - volumes: - - .:/code - working_dir: /code + build: . + working_dir: /var/www/laravel-mongodb environment: MONGODB_URI: 'mongodb://mongodb/' + volumes: + - .:/var/www/laravel-mongodb depends_on: mongodb: condition: service_healthy From c71c2ec98ae95f836f1171f2cfc65c2c74f135d3 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Tue, 14 Nov 2023 14:54:37 +0330 Subject: [PATCH 03/17] Update Dockerfile --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 818a3a1fb..93f7ba16e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,4 +9,3 @@ RUN apt-get update && \ # Install Composer RUN curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer -ENV COMPOSER_ALLOW_SUPERUSER=1 From 10e164666b37659ea0d168ae5a53d4509bff533f Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Tue, 14 Nov 2023 15:23:48 +0330 Subject: [PATCH 04/17] Reformat build-ci; --- .github/workflows/build-ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 97b1e8a32..72e0d13bc 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -9,7 +9,9 @@ on: jobs: build: runs-on: ${{ matrix.os }} + name: PHP v${{ matrix.php }} with MongoDB ${{ matrix.mongodb }} ${{ matrix.mode }} + strategy: matrix: os: @@ -30,6 +32,7 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Create MongoDB Replica Set run: | docker run --name mongodb -p 27017:27017 -e MONGO_INITDB_DATABASE=unittest --detach mongo:${{ matrix.mongodb }} mongod --replSet rs --setParameter transactionLifetimeLimitSeconds=5 @@ -39,10 +42,12 @@ jobs: sleep 1 done sudo docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "rs.initiate({\"_id\":\"rs\",\"members\":[{\"_id\":0,\"host\":\"127.0.0.1:27017\" }]})" + - name: Show MongoDB server status run: | if [ "${{ matrix.mongodb }}" = "4.4" ]; then MONGOSH_BIN="mongo"; else MONGOSH_BIN="mongosh"; fi docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "db.runCommand({ serverStatus: 1 })" + - name: "Installing php" uses: shivammathur/setup-php@v2 with: @@ -50,29 +55,36 @@ jobs: extensions: curl,mbstring,xdebug coverage: xdebug tools: composer + - name: Show PHP version run: php -v && composer -V + - name: Show Docker version run: if [[ "$DEBUG" == "true" ]]; then docker version && env; fi env: DEBUG: ${{secrets.DEBUG}} + - name: Download Composer cache dependencies from cache id: composer-cache run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + - name: Cache Composer dependencies uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ matrix.os }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: ${{ matrix.os }}-composer- + - name: Install dependencies run: | composer update --no-interaction $([[ "${{ matrix.mode }}" == low-deps ]] && echo ' --prefer-lowest --prefer-stable') + - name: Run tests run: | ./vendor/bin/phpunit --coverage-clover coverage.xml env: MONGODB_URI: 'mongodb://127.0.0.1/?replicaSet=rs' + - uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} From a35d382616c7d7b29ec3556cadb0bfad4d6f9e6e Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Tue, 14 Nov 2023 15:37:47 +0330 Subject: [PATCH 05/17] Remove double quotes; --- .github/dependabot.yml | 4 +-- .github/workflows/build-ci.yml | 2 +- .github/workflows/coding-standards.yml | 34 +++++++++++++------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5ace4600a..c75e875a0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,6 @@ version: 2 updates: - - package-ecosystem: "github-actions" + - package-ecosystem: github-actions directory: "/" schedule: - interval: "weekly" + interval: weekly diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 72e0d13bc..8bfae7f39 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -48,7 +48,7 @@ jobs: if [ "${{ matrix.mongodb }}" = "4.4" ]; then MONGOSH_BIN="mongo"; else MONGOSH_BIN="mongosh"; fi docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "db.runCommand({ serverStatus: 1 })" - - name: "Installing php" + - name: Installing php uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index e75ca3c53..bc1c68239 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -16,16 +16,16 @@ jobs: runs-on: "ubuntu-22.04" steps: - - name: "Checkout" - uses: "actions/checkout@v4" + - name: Checkout + uses: actions/checkout@v4 - name: Setup cache environment id: extcache uses: shivammathur/cache-extensions@v1 with: php-version: ${{ env.PHP_VERSION }} - extensions: "mongodb-${{ env.DRIVER_VERSION }}" - key: "extcache-v1" + extensions: mongodb-${{ env.DRIVER_VERSION }} + key: extcache-v1 - name: Cache extensions uses: actions/cache@v3 @@ -34,22 +34,22 @@ jobs: key: ${{ steps.extcache.outputs.key }} restore-keys: ${{ steps.extcache.outputs.key }} - - name: "Install PHP" - uses: "shivammathur/setup-php@v2" + - name: Install PHP + uses: shivammathur/setup-php@v2 with: - coverage: "none" - extensions: "mongodb-${{ env.DRIVER_VERSION }}" - php-version: "${{ env.PHP_VERSION }}" - tools: "cs2pr" + coverage: none + extensions: mongodb-${{ env.DRIVER_VERSION }} + php-version: ${{ env.PHP_VERSION }} + tools: cs2pr - - name: "Show driver information" - run: "php --ri mongodb" + - name: Show driver information + run: php --ri mongodb - - name: "Install dependencies with Composer" - uses: "ramsey/composer-install@2.2.0" + - name: Install dependencies with Composer + uses: ramsey/composer-install@2.2.0 with: - composer-options: "--no-suggest" + composer-options: --no-suggest # The -q option is required until phpcs v4 is released - - name: "Run PHP_CodeSniffer" - run: "vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr" + - name: Run PHP_CodeSniffer + run: vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr From ff1c90636fa4d76b64be546faa3203bcc0caa2fe Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Tue, 14 Nov 2023 15:37:58 +0330 Subject: [PATCH 06/17] Two new scripts; --- composer.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a415657a3..8534d5658 100644 --- a/composer.json +++ b/composer.json @@ -60,7 +60,9 @@ "scripts": { "test": "./vendor/bin/phpunit", "test:group": "./vendor/bin/phpunit --group test", - "test:coverage": "./vendor/bin/phpunit --coverage-clover ./coverage.xml" + "test:coverage": "./vendor/bin/phpunit --coverage-clover ./coverage.xml", + "cs": "./vendor/bin/phpcs", + "cs:fix": "./vendor/bin/phpcbf" }, "config": { "platform": { From b00e3506f5bfbc8662424cd9bdec327e122eb924 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Tue, 14 Nov 2023 15:45:11 +0330 Subject: [PATCH 07/17] Update build-ci.yml --- .github/workflows/build-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 8bfae7f39..9168b95b9 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -80,8 +80,7 @@ jobs: composer update --no-interaction $([[ "${{ matrix.mode }}" == low-deps ]] && echo ' --prefer-lowest --prefer-stable') - name: Run tests - run: | - ./vendor/bin/phpunit --coverage-clover coverage.xml + run: composer test:coverage env: MONGODB_URI: 'mongodb://127.0.0.1/?replicaSet=rs' From 56beea990dd482d608aeab520f59f17573e34f6d Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Thu, 16 Nov 2023 16:16:23 +0330 Subject: [PATCH 08/17] Update Dockerfile --- Dockerfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Dockerfile b/Dockerfile index 93f7ba16e..21885ea09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,5 +7,12 @@ RUN apt-get update && \ pecl install xdebug && docker-php-ext-enable xdebug && \ docker-php-ext-install -j$(nproc) zip +# Increase memory limit +RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini && \ + echo "memory_limit=-1" >> /usr/local/etc/php/php.ini + +# Enable coverage mode in xdebug +RUN echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini + # Install Composer RUN curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer From 288b78d5d23a38d0c574c16f9a01c11ec8b25f64 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Sun, 19 Nov 2023 10:41:25 +0330 Subject: [PATCH 09/17] Double quotes workflows values; --- .github/dependabot.yml | 4 +- .github/workflows/build-ci.yml | 74 +++++++++++++------------- .github/workflows/coding-standards.yml | 42 +++++++-------- 3 files changed, 60 insertions(+), 60 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c75e875a0..5ace4600a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,6 @@ version: 2 updates: - - package-ecosystem: github-actions + - package-ecosystem: "github-actions" directory: "/" schedule: - interval: weekly + interval: "weekly" diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 9168b95b9..2b2c3eb80 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -1,4 +1,4 @@ -name: CI +name: "CI" on: push: @@ -8,32 +8,32 @@ on: jobs: build: - runs-on: ${{ matrix.os }} + runs-on: "${{ matrix.os }}" - name: PHP v${{ matrix.php }} with MongoDB ${{ matrix.mongodb }} ${{ matrix.mode }} + name: "PHP v${{ matrix.php }} with MongoDB ${{ matrix.mongodb }} ${{ matrix.mode }}" strategy: matrix: os: - - ubuntu-latest + - "ubuntu-latest" mongodb: - - '4.4' - - '5.0' - - '6.0' - - '7.0' + - "4.4" + - "5.0" + - "6.0" + - "7.0" php: - - '8.1' - - '8.2' - - '8.3' + - "8.1" + - "8.2" + - "8.3" include: - - php: '8.1' - mongodb: '5.0' - mode: 'low-deps' + - php: "8.1" + mongodb: "5.0" + mode: "low-deps" steps: - - uses: actions/checkout@v4 + - uses: "actions/checkout@v4" - - name: Create MongoDB Replica Set + - name: "Create MongoDB Replica Set" run: | docker run --name mongodb -p 27017:27017 -e MONGO_INITDB_DATABASE=unittest --detach mongo:${{ matrix.mongodb }} mongod --replSet rs --setParameter transactionLifetimeLimitSeconds=5 @@ -43,48 +43,48 @@ jobs: done sudo docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "rs.initiate({\"_id\":\"rs\",\"members\":[{\"_id\":0,\"host\":\"127.0.0.1:27017\" }]})" - - name: Show MongoDB server status + - name: "Show MongoDB server status" run: | if [ "${{ matrix.mongodb }}" = "4.4" ]; then MONGOSH_BIN="mongo"; else MONGOSH_BIN="mongosh"; fi docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "db.runCommand({ serverStatus: 1 })" - - name: Installing php - uses: shivammathur/setup-php@v2 + - name: "Installing php" + uses: "shivammathur/setup-php@v2" with: php-version: ${{ matrix.php }} - extensions: curl,mbstring,xdebug - coverage: xdebug - tools: composer + extensions: "curl,mbstring,xdebug" + coverage: "xdebug" + tools: "composer" - - name: Show PHP version - run: php -v && composer -V + - name: "Show PHP version" + run: "php -v && composer -V" - - name: Show Docker version + - name: "Show Docker version" run: if [[ "$DEBUG" == "true" ]]; then docker version && env; fi env: - DEBUG: ${{secrets.DEBUG}} + DEBUG: ${{ secrets.DEBUG }} - - name: Download Composer cache dependencies from cache - id: composer-cache + - name: "Download Composer cache dependencies from cache" + id: "composer-cache" run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - name: Cache Composer dependencies - uses: actions/cache@v3 + - name: "Cache Composer dependencies" + uses: "actions/cache@v3" with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ matrix.os }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ matrix.os }}-composer- + key: "${{ matrix.os }}-composer-${{ hashFiles('**/composer.json') }}" + restore-keys: "${{ matrix.os }}-composer-" - - name: Install dependencies + - name: "Install dependencies" run: | composer update --no-interaction $([[ "${{ matrix.mode }}" == low-deps ]] && echo ' --prefer-lowest --prefer-stable') - - name: Run tests - run: composer test:coverage + - name: "Run tests" + run: "composer test:coverage" env: MONGODB_URI: 'mongodb://127.0.0.1/?replicaSet=rs' - - uses: codecov/codecov-action@v3 + - uses: "codecov/codecov-action@v3" with: token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: false + fail_ci_if_error: "false" diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index bc1c68239..29fd4399c 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -16,40 +16,40 @@ jobs: runs-on: "ubuntu-22.04" steps: - - name: Checkout - uses: actions/checkout@v4 + - name: "Checkout" + uses: "actions/checkout@v4" - - name: Setup cache environment - id: extcache - uses: shivammathur/cache-extensions@v1 + - name: "Setup cache environment" + id: "extcache" + uses: "shivammathur/cache-extensions@v1" with: php-version: ${{ env.PHP_VERSION }} - extensions: mongodb-${{ env.DRIVER_VERSION }} - key: extcache-v1 + extensions: "mongodb-${{ env.DRIVER_VERSION }}" + key: "extcache-v1" - - name: Cache extensions - uses: actions/cache@v3 + - name: "Cache extensions" + uses: "actions/cache@v3" 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 + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" with: - coverage: none - extensions: mongodb-${{ env.DRIVER_VERSION }} + coverage: "none" + extensions: "mongodb-${{ env.DRIVER_VERSION }}" php-version: ${{ env.PHP_VERSION }} - tools: cs2pr + tools: "cs2pr" - - name: Show driver information - run: php --ri mongodb + - name: "Show driver information" + run: "php --ri mongodb" - - name: Install dependencies with Composer - uses: ramsey/composer-install@2.2.0 + - name: "Install dependencies with Composer" + uses: "ramsey/composer-install@2.2.0" with: - composer-options: --no-suggest + composer-options: "--no-suggest" # The -q option is required until phpcs v4 is released - - name: Run PHP_CodeSniffer - run: vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr + - name: "Run PHP_CodeSniffer" + run: "vendor/bin/phpcs -q --no-colors --report=checkstyle | cs2pr" From 038df4376fd822c5ff18d09978e5321fdec88495 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Sat, 25 Nov 2023 16:41:17 +0330 Subject: [PATCH 10/17] Update copying php.ini file; --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 21885ea09..607cd0055 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ RUN apt-get update && \ docker-php-ext-install -j$(nproc) zip # Increase memory limit -RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini && \ +RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \ echo "memory_limit=-1" >> /usr/local/etc/php/php.ini # Enable coverage mode in xdebug From 574deb0ea50aaadde370b6f08b82b97a48d26eb8 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 27 Nov 2023 14:54:36 +0330 Subject: [PATCH 11/17] test:group script removed; --- composer.json | 1 - 1 file changed, 1 deletion(-) diff --git a/composer.json b/composer.json index 56d412b85..81ea87e79 100644 --- a/composer.json +++ b/composer.json @@ -61,7 +61,6 @@ }, "scripts": { "test": "./vendor/bin/phpunit", - "test:group": "./vendor/bin/phpunit --group test", "test:coverage": "./vendor/bin/phpunit --coverage-clover ./coverage.xml", "cs": "./vendor/bin/phpcs", "cs:fix": "./vendor/bin/phpcbf" From 68d79e435711bfe4f82721ca04be291e175f9abb Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 27 Nov 2023 14:59:29 +0330 Subject: [PATCH 12/17] Merge creating php.ini and enabling coverage mode; --- Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 607cd0055..2f332094e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,10 @@ RUN apt-get update && \ pecl install xdebug && docker-php-ext-enable xdebug && \ docker-php-ext-install -j$(nproc) zip -# Increase memory limit +# Create php.ini and enable coverage mode in xdebug RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \ - echo "memory_limit=-1" >> /usr/local/etc/php/php.ini + echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini -# Enable coverage mode in xdebug -RUN echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini # Install Composer RUN curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer From 2b4a0cb13b0784b688a8055acdce77c9f141eaf8 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 27 Nov 2023 15:06:01 +0330 Subject: [PATCH 13/17] Revert composer installation command; --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2f332094e..4c5ec6cd0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,4 +13,4 @@ RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \ # Install Composer -RUN curl https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer From 4881f6bb64a6cc543112c8434f2a5b1f2c37522c Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 27 Nov 2023 15:19:00 +0330 Subject: [PATCH 14/17] WIP --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 4c5ec6cd0..3e44e17ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,5 @@ RUN apt-get update && \ RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \ echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini - # Install Composer COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer From 8a36ebcb8bbdce725cc4485eae1f21bdf994f1f6 Mon Sep 17 00:00:00 2001 From: Mohammad Mortazavi Date: Mon, 27 Nov 2023 15:27:22 +0330 Subject: [PATCH 15/17] debug steps updated; Co-Authored-By: Tonko Mulder --- .github/workflows/build-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 88ab2cc6d..e69b2bfb9 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -55,12 +55,12 @@ jobs: tools: "composer" - name: "Show PHP version" + if: ${{ secrets.DEBUG == 'true' }} run: "php -v && composer -V" - name: "Show Docker version" - run: if [[ "$DEBUG" == "true" ]]; then docker version && env; fi - env: - DEBUG: ${{ secrets.DEBUG }} + if: ${{ secrets.DEBUG == 'true' }} + run: "docker version && env" - name: "Download Composer cache dependencies from cache" id: "composer-cache" From 81e0d24db7990000f30b765410d2223083bbc019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Mon, 4 Dec 2023 11:31:24 +0100 Subject: [PATCH 16/17] Set xdebug.mode in phpunit config, default container command to install vendors and run phpunit, fix composer script aliases --- Dockerfile | 9 +++++---- composer.json | 8 ++++---- docker-compose.yml | 1 + phpunit.xml.dist | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3e44e17ef..43529d9e4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM php:8.1-cli +ARG PHP_VERSION=8.1 + +FROM php:${PHP_VERSION}-cli # Install extensions RUN apt-get update && \ @@ -7,9 +9,8 @@ RUN apt-get update && \ pecl install xdebug && docker-php-ext-enable xdebug && \ docker-php-ext-install -j$(nproc) zip -# Create php.ini and enable coverage mode in xdebug -RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" && \ - echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini +# Create php.ini +RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" # Install Composer COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer diff --git a/composer.json b/composer.json index 81ea87e79..22b75f58f 100644 --- a/composer.json +++ b/composer.json @@ -60,10 +60,10 @@ } }, "scripts": { - "test": "./vendor/bin/phpunit", - "test:coverage": "./vendor/bin/phpunit --coverage-clover ./coverage.xml", - "cs": "./vendor/bin/phpcs", - "cs:fix": "./vendor/bin/phpcbf" + "test": "phpunit", + "test:coverage": "phpunit --coverage-clover ./coverage.xml", + "cs": "phpcs", + "cs:fix": "phpcbf" }, "config": { "platform": { diff --git a/docker-compose.yml b/docker-compose.yml index 89490e9f3..f757ec3cd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,6 +5,7 @@ services: tty: true build: . working_dir: /var/www/laravel-mongodb + command: "bash -c 'composer install && composer run test'" environment: MONGODB_URI: 'mongodb://mongodb/' volumes: diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 8e5e9d3d6..b1aa3a8eb 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -18,7 +18,7 @@ - + From b3c78f22af8181d196d0041c43ba9201a1f42203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Mon, 4 Dec 2023 11:44:03 +0100 Subject: [PATCH 17/17] Update doc --- CONTRIBUTING.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4de5b27bd..419828755 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,27 +38,27 @@ Before submitting a pull request: ## Run Tests -The full test suite requires PHP cli with mongodb extension, a running MongoDB server and a running MySQL server. +The full test suite requires PHP cli with mongodb extension, a running MongoDB server. Duplicate the `phpunit.xml.dist` file to `phpunit.xml` and edit the environment variables to match your setup. ```bash -$ docker-compose up -d mongodb -$ docker-compose run tests +$ docker-compose run app ``` -Docker can be slow to start. You can run the command `php vendor/bin/phpunit --testdox` locally or in a docker container. +Docker can be slow to start. You can run the command `composer run test` locally or in a docker container. ```bash $ docker-compose run -it tests bash # Inside the container $ composer install -$ vendor/bin/phpunit --testdox +$ composer run test ``` -For fixing style issues, you can run the PHP Code Beautifier and Fixer: +For fixing style issues, you can run the PHP Code Beautifier and Fixer, some issues can't be fixed automatically: ```bash -$ php vendor/bin/phpcbf +$ composer run cs:fix +$ composer run cs ``` ## Requirements