diff --git a/.github/workflows/php81.yaml b/.github/workflows/php81.yaml new file mode 100644 index 000000000..6b911b608 --- /dev/null +++ b/.github/workflows/php81.yaml @@ -0,0 +1,67 @@ +name: Build PHP 8.1 + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] +jobs: + test: + + services: + sql.data: + image: mcr.microsoft.com/mssql/server:2019-latest + env: + SA_PASSWORD: ${{ secrets.SA_PASSWORD }} + ACCEPT_EULA: Y + MSSQL_PID: Express + ports: + - "1433:1433" + + steps: + + - name: Shutdown Ubuntu MySQL + run: sudo service mysql stop + + - name: Set up MySQL + uses: mirromutth/mysql-action@v1.1 + with: + mysql version: '5.7' + mysql database: 'testing_db' + mysql root password: ${{ secrets.MYSQL_ROOT_PASSWORD }} + mysql user: 'root' + mysql password: ${{ secrets.MYSQL_ROOT_PASSWORD }} + + - name: Wait for MySQL + run: | + while ! mysqladmin ping --host=127.0.0.1 --password=${{ secrets.MYSQL_ROOT_PASSWORD }} --silent; do + sleep 1 + done + + - name: Setup MSSQL + run: | + curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc + curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list + sudo apt update + sudo apt install mssql-tools18 + /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P ${{ secrets.SA_PASSWORD }} -Q 'create database testing_db' -C + + - name: Run Tests + + uses: WebFiori/workflows/.github/workflows/test-php.yaml@main + with: + php-version: '8.1' + + + code-coverage: + name: Coverage + needs: test + uses: WebFiori/workflows/.github/workflows/coverage-codecov.yaml@main + with: + php-version: '8.1' + coverage-file: 'php-8.1-coverage.xml' + secrets: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + + diff --git a/.github/workflows/php81.yml b/.github/workflows/php81.yml deleted file mode 100644 index dba9551d4..000000000 --- a/.github/workflows/php81.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: Build PHP 8.1 - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - test: - runs-on: ${{ matrix.os }} - services: - sql.data: - image: mcr.microsoft.com/mssql/server:2019-latest - env: - SA_PASSWORD: ${{ secrets.SA_PASSWORD }} - ACCEPT_EULA: Y - MSSQL_PID: Express - ports: - - "1433:1433" - strategy: - fail-fast: true - matrix: - os: [ ubuntu-latest ] - php: [8.1] - - name: PHP${{matrix.php}} - ${{matrix.os}} - - steps: - - name: Clone Repo - uses: actions/checkout@v4 - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: mysqli, mbstring, sqlsrv - tools: phpunit:9.5.20, composer - - - name: Shutdown Ubuntu MySQL - run: sudo service mysql stop - - - name: Set up MySQL - uses: mirromutth/mysql-action@v1.1 - with: - mysql version: '5.7' - mysql database: 'testing_db' - mysql root password: ${{ secrets.MYSQL_ROOT_PASSWORD }} - mysql user: 'root' - mysql password: ${{ secrets.MYSQL_ROOT_PASSWORD }} - - - name: Wait for MySQL - run: | - while ! mysqladmin ping --host=127.0.0.1 --password=${{ secrets.MYSQL_ROOT_PASSWORD }} --silent; do - sleep 1 - done - - - name: Setup MSSQL - run: | - curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc - curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list - sudo apt update - sudo apt install mssql-tools18 - /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P ${{ secrets.SA_PASSWORD }} -Q 'create database testing_db' -C - - - name: Install Dependencies - run: composer install --prefer-dist --no-interaction --no-dev - - - name: Execute Tests - run: phpunit --configuration tests/phpunit.xml - - - name: CodeCov - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} diff --git a/composer.json b/composer.json index 21c654972..eed39d6f7 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "ext-fileinfo": "*", "ext-openssl": "*", "webfiori/cache": "v1.1.0", - "webfiori/http": "v3.6.0", + "webfiori/http": "v3.6.1", "webfiori/file": "v1.3.8", "webfiori/jsonx": "v3.3.2", "webfiori/ui": "v2.6.4", @@ -33,7 +33,13 @@ "webfiori/mailer": "v1.3.1", "webfiori/err": "v1.2.0" }, - "require-dev": {}, + "scripts": { + "test": "phpunit --configuration tests/phpunit.xml", + "test-10": "phpunit --configuration tests/phpunit10.xml" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, "autoload": { "psr-4": { "webfiori\\framework\\": "webfiori/framework/" diff --git a/tests/webfiori/framework/test/cli/AddCommandTest.php b/tests/webfiori/framework/test/cli/AddCommandTest.php index 7e1d780ba..c1552f8a1 100644 --- a/tests/webfiori/framework/test/cli/AddCommandTest.php +++ b/tests/webfiori/framework/test/cli/AddCommandTest.php @@ -49,8 +49,8 @@ public function testAddDBConnection00() { '' ]); - - $connName = 'db-connection-'.(count(App::getConfig()->getDBConnections()) - 1); + $count = count(App::getConfig()->getDBConnections()); + $connName = 'db-connection-'.$count; $this->assertEquals([ "What would you like to add?\n", "0: New database connection.\n", @@ -139,7 +139,8 @@ public function testAddDBConnection02() { 'add' ]); $this->assertEquals(0, $runner->start()); - $connName = 'db-connection-'.count(App::getConfig()->getDBConnections()); + $count = count(App::getConfig()->getDBConnections()); + $connName = 'db-connection-'.($count); $this->assertEquals([ "What would you like to add?\n", "0: New database connection.\n", @@ -285,4 +286,5 @@ private function removeClass($classPath) { $file = new File(ROOT_PATH.$classPath.'.php'); $file->remove(); } + } diff --git a/webfiori/framework/App.php b/webfiori/framework/App.php index 0d291b456..f929b1628 100644 --- a/webfiori/framework/App.php +++ b/webfiori/framework/App.php @@ -637,7 +637,7 @@ public static function initFrameworkVersionInfo() { * * @since 2.1 */ - define('WF_VERSION', '3.0.0-Beta.27'); + define('WF_VERSION', '3.0.0-Beta.28'); /** * A constant that tells the type of framework version. * @@ -653,7 +653,7 @@ public static function initFrameworkVersionInfo() { * * @since 2.1 */ - define('WF_RELEASE_DATE', '2025-05-26'); + define('WF_RELEASE_DATE', '2025-08-04'); } /**