diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1316993d53..e5ac797d60 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -28,29 +28,26 @@ jobs: - php-version: 8.0 name: Unit - skip-style-check: 1 skip-web-check: 1 database: mariadb:10.5 - php-version: 8.0 - name: Style and Web + name: Web skip-unit-check: 1 database: mysql:5.7 - php-version: 7.4 name: Unit - skip-style-check: 1 skip-web-check: 1 database: mysql:5.7 - php-version: 7.3 name: Unit - skip-style-check: 1 skip-web-check: 1 - database: mysql:5.7 + database: mysql:8.0 - php-version: 7.3 - name: Style and Web + name: Web skip-unit-check: 1 database: mysql:8.0 services: @@ -187,7 +184,6 @@ jobs: run: | php lnms dev:check ci env: - SKIP_STYLE_CHECK: ${{ matrix.skip-style-check }} SKIP_UNIT_CHECK: ${{ matrix.skip-unit-check }} SKIP_WEB_CHECK: ${{ matrix.skip-web-check }} - diff --git a/LibreNMS/DB/Schema.php b/LibreNMS/DB/Schema.php index d521c8225b..ac99aa4156 100644 --- a/LibreNMS/DB/Schema.php +++ b/LibreNMS/DB/Schema.php @@ -328,7 +328,7 @@ class Schema foreach (DB::connection($connection)->select(DB::raw("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = '$db_name' ORDER BY TABLE_NAME;")) as $table) { $table = $table->TABLE_NAME; - foreach (DB::connection($connection)->select(DB::raw("SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME='$table'")) as $data) { + foreach (DB::connection($connection)->select(DB::raw("SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_DEFAULT, EXTRA FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '$db_name' AND TABLE_NAME='$table' ORDER BY ORDINAL_POSITION")) as $data) { $def = [ 'Field' => $data->COLUMN_NAME, 'Type' => preg_replace('/int\([0-9]+\)/', 'int', $data->COLUMN_TYPE), diff --git a/LibreNMS/Util/CiHelper.php b/LibreNMS/Util/CiHelper.php index b7415dda11..cd73a9824e 100644 --- a/LibreNMS/Util/CiHelper.php +++ b/LibreNMS/Util/CiHelper.php @@ -433,7 +433,7 @@ class CiHelper $this->setFlags([ 'unit_skip' => empty($this->changed['php']) && ! array_sum(Arr::only($this->getFlags(), ['unit_os', 'unit_docs', 'unit_svg', 'unit_modules', 'docs_changed'])), 'lint_skip' => array_sum(Arr::only($this->getFlags(), ['lint_skip_php', 'lint_skip_python', 'lint_skip_bash'])) === 3, - 'style_skip' => empty($this->changed['php']), + 'style_skip' => ! $this->flags['ci'] && empty($this->changed['php']), 'web_skip' => empty($this->changed['php']) && empty($this->changed['resources']), ]); } diff --git a/tests/DBSetupTest.php b/tests/DBSetupTest.php index 0e7c556a09..80c7556d5f 100644 --- a/tests/DBSetupTest.php +++ b/tests/DBSetupTest.php @@ -106,10 +106,18 @@ class DBSetupTest extends DBTestCase public function testSqlMode() { - $this->assertEquals( - 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION', - DB::connection($this->connection)->select(DB::raw('SELECT @@sql_mode AS mode'))[0]->mode - ); + $result = DB::connection($this->connection)->selectOne(DB::raw('SELECT @@version AS version, @@sql_mode AS mode')); + preg_match('/([0-9.]+)(?:-(\w+))?/', $result->version, $matches); + $version = $matches[1] ?? null; + $vendor = $matches[2] ?? null; + $mode = $result->mode; + + // NO_AUTO_CREATE_USER is removed in mysql 8 + $expected = ($vendor !== 'MariaDB' && version_compare($version, '8.0.0') >= 0) + ? 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' + : 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; + + $this->assertEquals($expected, $mode); } public function testValidateSchema()