From 01b3fd6f96aa9997c45d47b444531f507cc30b5d Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Tue, 31 May 2022 11:50:16 +0100 Subject: [PATCH 1/2] Revert "[ci skip] Drop libmysql build from nightly (#8663)" This reverts commit ab67b52a5907d1377087687dfe7125a05776977c. --- azure-pipelines.yml | 4 +++ azure/libmysqlclient_job.yml | 37 ++++++++++++++++++++++++ azure/libmysqlclient_test.yml | 53 +++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 azure/libmysqlclient_job.yml create mode 100644 azure/libmysqlclient_test.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2c2914d229e9b..abb7c3f970923 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -66,6 +66,10 @@ jobs: configurationName: DEBUG_NTS_REPEAT configurationParameters: '--enable-debug --disable-zts' runTestsParameters: '--repeat 2' + - template: azure/libmysqlclient_job.yml + parameters: + configurationName: LIBMYSQLCLIENT_DEBUG_NTS + configurationParameters: '--enable-debug --disable-zts' - template: azure/job.yml parameters: configurationName: VARIATION_DEBUG_ZTS diff --git a/azure/libmysqlclient_job.yml b/azure/libmysqlclient_job.yml new file mode 100644 index 0000000000000..4eb998014c316 --- /dev/null +++ b/azure/libmysqlclient_job.yml @@ -0,0 +1,37 @@ +parameters: + configurationName: '' + configurationParameters: '' + runTestsParameters: '' + timeoutInMinutes: 60 + +jobs: + - job: ${{ parameters.configurationName }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + pool: + vmImage: 'ubuntu-20.04' + steps: + - script: | + sudo apt-get update -y | true + sudo apt install bison re2c + displayName: 'APT' + - script: | + set -o + sudo service mysql start + mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS test" + # Ensure local_infile tests can run. + mysql -uroot -proot -e "SET GLOBAL local_infile = true" + displayName: 'Setup MySQL server' + # Does not support caching_sha2_auth :( + #- template: libmysqlclient_test.yml + # parameters: + # configurationName: ${{ parameters.configurationName }} - MySQL 5.6.49 + # libmysql: mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz + - template: libmysqlclient_test.yml + parameters: + configurationName: ${{ parameters.configurationName }} - MySQL 5.7.38 + libmysql: mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz + - template: libmysqlclient_test.yml + parameters: + configurationName: ${{ parameters.configurationName }} - MySQL 8.0.27 + libmysql: mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz + configurationParameters: ${{ parameters.configurationParameters }} --enable-werror diff --git a/azure/libmysqlclient_test.yml b/azure/libmysqlclient_test.yml new file mode 100644 index 0000000000000..c163345dc4db4 --- /dev/null +++ b/azure/libmysqlclient_test.yml @@ -0,0 +1,53 @@ +parameters: + configurationName: '' + configurationParameters: '' + libmysql: '' + +steps: + - script: | + set -e + LIBMYSQL=${{ parameters.libmysql }} + MYSQL_BASE=${LIBMYSQL%%-linux-*} + MYSQL_VERSION=${MYSQL_BASE#*-} + MYSQL_DIR=$HOME/$MYSQL_BASE + mkdir -p $MYSQL_DIR + URL=https://cdn.mysql.com/Downloads/MySQL-${MYSQL_VERSION%.*}/$LIBMYSQL + wget -nv $URL + tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR + PDO_MYSQL=${MYSQL_DIR} + MYSQLI=${MYSQL_DIR}/bin/mysql_config + ./buildconf --force + ./configure ${{ parameters.configurationParameters }} \ + --enable-option-checking=fatal \ + --disable-all \ + --enable-pdo \ + --with-pdo-mysql=${PDO_MYSQL} \ + --with-mysqli=${MYSQLI} + make clean + make -j$(/usr/bin/nproc) >/dev/null + displayName: 'Build ${{ parameters.configurationName }}' + condition: or(succeeded(), failed()) + - script: | + export MYSQL_TEST_USER=root + export MYSQL_TEST_PASSWD=root + export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test" + export PDO_MYSQL_TEST_HOST=127.0.0.1 + export PDO_MYSQL_TEST_USER=root + export PDO_MYSQL_TEST_PASS=root + export TEST_PHP_JUNIT=junit.xml + export REPORT_EXIT_STATUS=no + rm -rf junit.xml | true + sapi/cli/php run-tests.php -P -q \ + -g FAIL,XFAIL,BORK,WARN,LEAK,XLEAK,SKIP \ + --offline --show-diff --show-slow 1000 --set-timeout 120 \ + ext/pdo_mysql + displayName: 'Test ${{ parameters.configurationName }}' + condition: or(succeeded(), failed()) + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'JUnit' + testResultsFiles: junit.xml + testRunTitle: '${{ parameters.configurationName }}' + failTaskOnFailedTests: true + displayName: 'Export ${{ parameters.configurationName }} Results' + condition: or(succeeded(), failed()) From 4cdf1144e215c617df2eb378ab43ff30e13a31c1 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Tue, 31 May 2022 12:31:03 +0100 Subject: [PATCH 2/2] [ci skip] Remove libmysql build only for mysqli extension --- azure/libmysqlclient_test.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/azure/libmysqlclient_test.yml b/azure/libmysqlclient_test.yml index c163345dc4db4..ccf3912b005eb 100644 --- a/azure/libmysqlclient_test.yml +++ b/azure/libmysqlclient_test.yml @@ -15,21 +15,17 @@ steps: wget -nv $URL tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR PDO_MYSQL=${MYSQL_DIR} - MYSQLI=${MYSQL_DIR}/bin/mysql_config ./buildconf --force ./configure ${{ parameters.configurationParameters }} \ --enable-option-checking=fatal \ --disable-all \ --enable-pdo \ - --with-pdo-mysql=${PDO_MYSQL} \ - --with-mysqli=${MYSQLI} + --with-pdo-mysql=${PDO_MYSQL} make clean make -j$(/usr/bin/nproc) >/dev/null displayName: 'Build ${{ parameters.configurationName }}' condition: or(succeeded(), failed()) - script: | - export MYSQL_TEST_USER=root - export MYSQL_TEST_PASSWD=root export PDO_MYSQL_TEST_DSN="mysql:host=127.0.0.1;dbname=test" export PDO_MYSQL_TEST_HOST=127.0.0.1 export PDO_MYSQL_TEST_USER=root