diff --git a/VERSIONS b/VERSIONS index 266fc8240..882001c0d 100644 --- a/VERSIONS +++ b/VERSIONS @@ -41,7 +41,7 @@ PXC57_REV="32be3bd" PXC57_WSREP="3.65(rf47405c)" PXC80_VER="8.0.35-27" PXC80_INNODB="27" -PXC80_REV="5835a94" +PXC80_REV="84d9464" PXC80_WSREP="4.16(b73532f)" PROXYSQL_VER="1.4.16-percona-1.1" PROXYSQL2_VER="2.5.5-percona-1.1" diff --git a/binary-tarball-tests/ps/settings.py b/binary-tarball-tests/ps/settings.py index 4bc6f1a08..f9b35575a 100644 --- a/binary-tarball-tests/ps/settings.py +++ b/binary-tarball-tests/ps/settings.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import os +import re base_dir = os.getenv('BASE_DIR') ps_version = os.getenv('PS_VERSION') @@ -119,61 +120,60 @@ ('lib/libperconaserverclient_r.so.18','lib/libperconaserverclient.so.18.1.0'),('lib/libperconaserverclient_r.so.18.1.0','lib/libperconaserverclient.so.18.1.0') ) -# 8.1 -ps81_binaries = [ +# 8.x +ps8x_binaries = [ 'bin/mysql', 'bin/mysqld', 'bin/mysqladmin', 'bin/mysqlbinlog', 'bin/mysqldump', 'bin/mysqlimport', 'bin/mysqlpump', 'bin/mysqlshow', 'bin/mysqlslap', 'bin/mysqlcheck', 'bin/mysql_config_editor', 'bin/mysqlrouter', 'bin/mysqlrouter_passwd', 'bin/mysqlrouter_plugin_info', 'bin/mysql_secure_installation', 'bin/mysql_ssl_rsa_setup', 'bin/mysql_upgrade', 'bin/mysql_tzinfo_to_sql' ] -ps81_executables = ps81_binaries + [ +ps8x_executables = ps8x_binaries + [ 'bin/ps-admin', 'bin/mysqldumpslow', 'bin/mysql_config', ] -ps81_plugins = ( +ps8x_plugins = ( ('mysql_no_login','mysql_no_login.so'),('validate_password','validate_password.so'), ('version_tokens','version_token.so'),('rpl_semi_sync_master','semisync_master.so'),('rpl_semi_sync_slave','semisync_slave.so'), ('group_replication','group_replication.so'),('clone','mysql_clone.so'), - ('procfs', 'procfs.so'), ('authentication_ldap_sasl','authentication_ldap_sasl.so'), - ('authentication_fido','authentication_fido.so') + ('procfs', 'procfs.so'), ('authentication_ldap_sasl','authentication_ldap_sasl.so') ) -ps81_functions = ( +ps8x_functions = ( ('version_tokens_set', 'version_token.so', 'STRING'),('version_tokens_show', 'version_token.so', 'STRING'),('version_tokens_edit', 'version_token.so', 'STRING'), ('version_tokens_delete', 'version_token.so', 'STRING'),('version_tokens_lock_shared', 'version_token.so', 'INT'),('version_tokens_lock_exclusive', 'version_token.so', 'INT'), ('version_tokens_unlock', 'version_token.so', 'INT'),('service_get_read_locks', 'locking_service.so', 'INT'),('service_get_write_locks', 'locking_service.so', 'INT'), ('service_release_locks', 'locking_service.so', 'INT') ) -ps81_components = ( +ps8x_components = ( 'component_masking_functions', 'component_binlog_utils_udf', 'component_percona_udf', 'component_audit_log_filter', 'component_keyring_vault' ) -ps81_files = ( +ps8x_files = ( 'lib/libcoredumper.a', 'lib/mysqlrouter/private/libmysqlrouter_http.so.1', 'lib/mysqlrouter/private/libmysqlrouter.so.1', 'lib/libmysqlservices.a', - 'lib/libperconaserverclient.a', 'lib/libperconaserverclient.so.22.0.0' ,'lib/mysql/libjemalloc.so.1', + 'lib/libperconaserverclient.a', 'lib/libperconaserverclient.so.22.1.0' ,'lib/mysql/libjemalloc.so.1', 'lib/plugin/ha_rocksdb.so', 'lib/plugin/auth_pam.so', 'lib/plugin/auth_pam_compat.so', 'lib/plugin/keyring_file.so','lib/plugin/component_binlog_utils_udf.so', 'lib/plugin/keyring_udf.so', 'lib/plugin/component_keyring_vault.so', 'lib/plugin/component_binlog_utils_udf.so', 'lib/plugin/component_audit_log_filter.so', 'lib/plugin/component_masking_functions.so' ) -ps81_symlinks = ( - ('lib/libperconaserverclient.so.22','lib/libperconaserverclient.so.22.0.0'), - ('lib/libperconaserverclient.so','lib/libperconaserverclient.so.22.0.0'),('lib/mysql/libjemalloc.so','lib/mysql/libjemalloc.so.1') +ps8x_symlinks = ( + ('lib/libperconaserverclient.so.22','lib/libperconaserverclient.so.22.1.0'), + ('lib/libperconaserverclient.so','lib/libperconaserverclient.so.22.1.0'),('lib/mysql/libjemalloc.so','lib/mysql/libjemalloc.so.1') ) ##### -if ps_version_major == '8.1': - ps_binaries = ps81_binaries - ps_executables = ps81_executables - ps_plugins = ps81_plugins - ps_functions = ps81_functions - ps_files = ps81_files - ps_symlinks = ps81_symlinks - ps_components = ps81_components +if re.match(r'^8\.[1-9]$', ps_version_major): + ps_binaries = ps8x_binaries + ps_executables = ps8x_executables + ps_plugins = ps8x_plugins + ps_functions = ps8x_functions + ps_files = ps8x_files + ps_symlinks = ps8x_symlinks + ps_components = ps8x_components elif ps_version_major == '8.0': ps_binaries = ps80_binaries ps_executables = ps80_executables diff --git a/binary-tarball-tests/ps/test-ps-binary-tarball.groovy b/binary-tarball-tests/ps/test-ps-binary-tarball.groovy index 7902bfd39..e43ce33c4 100644 --- a/binary-tarball-tests/ps/test-ps-binary-tarball.groovy +++ b/binary-tarball-tests/ps/test-ps-binary-tarball.groovy @@ -37,18 +37,6 @@ pipeline { junit 'package-testing/binary-tarball-tests/ps/report.xml' } //End steps } //End stage Ubuntu Focal - stage('Ubuntu Bionic') { - agent { - label "min-bionic-x64" - } - steps { - script { - currentBuild.displayName = "#${BUILD_NUMBER}-${PS_VERSION}-${PS_REVISION}" - } - run_test() - junit 'package-testing/binary-tarball-tests/ps/report.xml' - } //End steps - } //End stage Ubuntu Bionic stage('Debian Bookworm') { agent { label "min-bookworm-x64" diff --git a/binary-tarball-tests/ps/tests/test_ps_dynamic.py b/binary-tarball-tests/ps/tests/test_ps_dynamic.py index 1e3c5cd68..33dba415a 100644 --- a/binary-tarball-tests/ps/tests/test_ps_dynamic.py +++ b/binary-tarball-tests/ps/tests/test_ps_dynamic.py @@ -36,7 +36,7 @@ def test_install_functions(mysql_server): mysql_server.install_function(function[0], function[1], function[2]) def test_install_component(mysql_server): - if ps_version_major in ['8.0', '8.1']: + if ps_version_major == '8.0' or re.match(r'^8\.[1-9]$', ps_version_major): for component in ps_components: mysql_server.install_component(component) else: diff --git a/docker-image-tests/ps-arm/settings.py b/docker-image-tests/ps-arm/settings.py index 682dd1115..7e388b5a6 100644 --- a/docker-image-tests/ps-arm/settings.py +++ b/docker-image-tests/ps-arm/settings.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import os +import re docker_acc = os.getenv('DOCKER_ACC') ps_version = os.getenv('PS_VERSION') @@ -15,12 +16,12 @@ docker_tag = ps_version docker_image = docker_acc + "/" + docker_product + ":" + docker_tag -# 8.1 -ps81_packages = ( +# 8.X +ps8x_packages = ( 'percona-server-client', 'percona-server-rocksdb', 'percona-server-server', 'percona-server-shared' ) -ps81_binaries = ( +ps8x_binaries = ( '/usr/bin/mysql', '/usr/sbin/mysqld', '/usr/bin/ps-admin', '/usr/bin/mysqladmin', '/usr/bin/mysqlbinlog', '/usr/sbin/mysqld-debug', '/usr/bin/mysqldump', '/usr/bin/mysqldumpslow', '/usr/bin/mysqlimport', '/usr/bin/mysqlpump', '/usr/bin/mysqlshow', '/usr/bin/mysqlslap', '/usr/bin/mysqlcheck', '/usr/bin/mysql_config_editor', '/usr/bin/mysql_config', @@ -28,16 +29,16 @@ '/usr/bin/hostname', '/usr/bin/gunzip', '/usr/bin/my_print_defaults', '/usr/bin/cat', '/usr/bin/mysql_tzinfo_to_sql', '/usr/bin/grep', '/usr/bin/cut', '/usr/bin/tail', '/usr/bin/sed', '/usr/bin/find', '/usr/bin/kill', '/usr/bin/gawk' ) -ps81_plugins = ( +ps8x_plugins = ( ('mysql_no_login','mysql_no_login.so'),('validate_password','validate_password.so'), ('version_tokens','version_token.so'),('rpl_semi_sync_master','semisync_master.so'),('rpl_semi_sync_slave','semisync_slave.so'), ('group_replication','group_replication.so'),('clone','mysql_clone.so'), ('authentication_ldap_sasl','authentication_ldap_sasl.so'),('authentication_fido','authentication_fido.so') ) -ps81_components = ( +ps8x_components = ( ('file://component_encryption_udf'),('file://component_keyring_kmip'),('file://component_keyring_kms'),('file://component_masking_functions'),('file://component_binlog_utils_udf'),('file://component_percona_udf'),('file://component_audit_log_filter'),('file://component_keyring_vault') ) -ps81_functions = ( +ps8x_functions = ( ('version_tokens_set', 'version_token.so', 'STRING'),('version_tokens_show', 'version_token.so', 'STRING'),('version_tokens_edit', 'version_token.so', 'STRING'), ('version_tokens_delete', 'version_token.so', 'STRING'),('version_tokens_lock_shared', 'version_token.so', 'INT'),('version_tokens_lock_exclusive', 'version_token.so', 'INT'), ('version_tokens_unlock', 'version_token.so', 'INT'),('service_get_read_locks', 'locking_service.so', 'INT'),('service_get_write_locks', 'locking_service.so', 'INT'), ('service_release_locks', 'locking_service.so', 'INT') @@ -118,12 +119,12 @@ ) ##### -if ps_version_major == '8.1': - ps_packages = ps81_packages - ps_binaries = ps81_binaries - ps_plugins = ps81_plugins - ps_functions = ps81_functions - ps_components = ps81_components +if re.match(r'^8\.[1-9]$', ps_version_major): + ps_packages = ps8x_packages + ps_binaries = ps8x_binaries + ps_plugins = ps8x_plugins + ps_functions = ps8x_functions + ps_components = ps8x_components elif ps_version_major == '8.0': ps_packages = ps80_packages ps_binaries = ps80_binaries diff --git a/docker-image-tests/ps-arm/tests/test_ps_dynamic.py b/docker-image-tests/ps-arm/tests/test_ps_dynamic.py index 11b82fcce..bc145174f 100644 --- a/docker-image-tests/ps-arm/tests/test_ps_dynamic.py +++ b/docker-image-tests/ps-arm/tests/test_ps_dynamic.py @@ -10,7 +10,7 @@ @pytest.fixture(scope='module') def host(): - if ps_version_major not in ['8.0', '8.1']: + if ps_version_major != '8.0' and not re.match(r'^8\.[1-9]$', ps_version_major): docker_id = subprocess.check_output( ['docker', 'run', '--name', container_name, '-e', 'MYSQL_ROOT_PASSWORD='+ps_pwd, '-e', 'INIT_TOKUDB=1', '-e', 'INIT_ROCKSDB=1', '-e', 'PERCONA_TELEMETRY_URL=https://check-dev.percona.com/v1/telemetry/GenericReport', '-d', docker_image]).decode().strip() else: @@ -31,7 +31,7 @@ def test_rocksdb_installed(self, host): pytest.skip('RocksDB is available from 5.7!') def test_tokudb_installed(self, host): - if ps_version_major not in ['8.0', '8.1']: + if ps_version_major != '8.0' and not re.match(r'^8\.[1-9]$', ps_version_major): cmd = host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "select SUPPORT from information_schema.ENGINES where ENGINE = \'TokuDB\';"') assert cmd.succeeded assert 'YES' in cmd.stdout @@ -56,7 +56,7 @@ def test_install_plugin(self, host, pname, soname): @pytest.mark.parametrize("cmpt", ps_components) def test_install_component(self, host, cmpt): - if ps_version_major in ['8.0', '8.1']: + if ps_version_major == '8.0' or re.match(r'^8\.[1-9]$', ps_version_major): cmd = host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "INSTALL component \''+cmpt+'\';"') assert cmd.succeeded cmd = host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "SELECT component_urn from mysql.component WHERE component_urn = \''+cmpt+'\';"') @@ -76,7 +76,7 @@ def test_install_audit_log_v2(self, host): pytest.mark.skip('Components are available from 8.0 onwards') def test_telemetry_enabled(self, host): - if ps_version_major not in ['8.0', '8.1']: + if ps_version_major != '8.0' and not re.match(r'^8\.[1-9]$', ps_version_major): pytest.skip('telemetry was added in 8.0') else: assert host.file('/usr/local/percona/telemetry_uuid').exists diff --git a/docker-image-tests/ps/settings.py b/docker-image-tests/ps/settings.py index 4ea6f15aa..e6ec5e932 100644 --- a/docker-image-tests/ps/settings.py +++ b/docker-image-tests/ps/settings.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import os +import re docker_acc = os.getenv('DOCKER_ACC') ps_version = os.getenv('PS_VERSION') @@ -18,12 +19,12 @@ docker_image_upstream = docker_acc + "/" + docker_product + ":" + ps_version_upstream docker_image_major = docker_acc + "/" + docker_product + ":" + ps_version_major -# 8.1 -ps81_packages = ( +# 8.X +ps8x_packages = ( 'percona-server-client', 'percona-server-rocksdb', 'percona-server-server', 'percona-server-shared', 'percona-mysql-shell' ) -ps81_binaries = ( +ps8x_binaries = ( '/usr/bin/mysql', '/usr/sbin/mysqld', '/usr/bin/ps-admin', '/usr/bin/mysqladmin', '/usr/bin/mysqlbinlog', '/usr/sbin/mysqld-debug', '/usr/bin/mysqldump', '/usr/bin/mysqldumpslow', '/usr/bin/mysqlimport', '/usr/bin/mysqlpump', '/usr/bin/mysqlshow', '/usr/bin/mysqlslap', '/usr/bin/mysqlcheck', '/usr/bin/mysql_config_editor', '/usr/bin/mysql_config', @@ -31,16 +32,16 @@ '/usr/bin/hostname', '/usr/bin/gunzip', '/usr/bin/my_print_defaults', '/usr/bin/cat', '/usr/bin/mysql_tzinfo_to_sql', '/usr/bin/grep', '/usr/bin/cut', '/usr/bin/tail', '/usr/bin/sed', '/usr/bin/find', '/usr/bin/kill', '/usr/bin/gawk', '/usr/bin/mysqlsh' ) -ps81_plugins = ( +ps8x_plugins = ( ('mysql_no_login','mysql_no_login.so'),('validate_password','validate_password.so'), ('version_tokens','version_token.so'),('rpl_semi_sync_master','semisync_master.so'),('rpl_semi_sync_slave','semisync_slave.so'), ('group_replication','group_replication.so'),('clone','mysql_clone.so'), ('authentication_ldap_sasl','authentication_ldap_sasl.so'),('authentication_fido','authentication_fido.so') ) -ps81_components = ( +ps8x_components = ( ('file://component_encryption_udf'),('file://component_keyring_kmip'),('file://component_keyring_kms'),('file://component_masking_functions'),('file://component_binlog_utils_udf'),('file://component_percona_udf'),('file://component_audit_log_filter'),('file://component_keyring_vault') ) -ps81_functions = ( +ps8x_functions = ( ('version_tokens_set', 'version_token.so', 'STRING'),('version_tokens_show', 'version_token.so', 'STRING'),('version_tokens_edit', 'version_token.so', 'STRING'), ('version_tokens_delete', 'version_token.so', 'STRING'),('version_tokens_lock_shared', 'version_token.so', 'INT'),('version_tokens_lock_exclusive', 'version_token.so', 'INT'), ('version_tokens_unlock', 'version_token.so', 'INT'),('service_get_read_locks', 'locking_service.so', 'INT'),('service_get_write_locks', 'locking_service.so', 'INT'), ('service_release_locks', 'locking_service.so', 'INT') @@ -121,12 +122,12 @@ ) ##### -if ps_version_major == '8.1': - ps_packages = ps81_packages - ps_binaries = ps81_binaries - ps_plugins = ps81_plugins - ps_functions = ps81_functions - ps_components = ps81_components +if re.match(r'^8\.[1-9]$', ps_version_major): + ps_packages = ps8x_packages + ps_binaries = ps8x_binaries + ps_plugins = ps8x_plugins + ps_functions = ps8x_functions + ps_components = ps8x_components elif ps_version_major == '8.0': ps_packages = ps80_packages ps_binaries = ps80_binaries diff --git a/docker-image-tests/ps/tests/test_ps_dynamic.py b/docker-image-tests/ps/tests/test_ps_dynamic.py index 6140f4f83..5a1dfe7dc 100644 --- a/docker-image-tests/ps/tests/test_ps_dynamic.py +++ b/docker-image-tests/ps/tests/test_ps_dynamic.py @@ -10,7 +10,7 @@ @pytest.fixture(scope='module') def host(): - if ps_version_major not in ['8.0', '8.1']: + if ps_version_major != '8.0' and not re.match(r'^8\.[1-9]$', ps_version_major): docker_id = subprocess.check_output( ['docker', 'run', '--name', container_name, '-e', 'MYSQL_ROOT_PASSWORD='+ps_pwd, '-e', 'INIT_TOKUDB=1', '-e', 'INIT_ROCKSDB=1', '-e', 'PERCONA_TELEMETRY_URL=https://check-dev.percona.com/v1/telemetry/GenericReport','-d', docker_image]).decode().strip() else: @@ -31,7 +31,7 @@ def test_rocksdb_installed(self, host): pytest.skip('RocksDB is available from 5.7!') def test_tokudb_installed(self, host): - if ps_version_major not in ['8.0', '8.1']: + if ps_version_major != '8.0' and not re.match(r'^8\.[1-9]$', ps_version_major): cmd = host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "select SUPPORT from information_schema.ENGINES where ENGINE = \'TokuDB\';"') assert cmd.succeeded assert 'YES' in cmd.stdout @@ -56,7 +56,7 @@ def test_install_plugin(self, host, pname, soname): @pytest.mark.parametrize("cmpt", ps_components) def test_install_component(self, host, cmpt): - if ps_version_major in ['8.0', '8.1']: + if ps_version_major == '8.0' or re.match(r'^8\.[1-9]$', ps_version_major): if cmpt == 'file://component_masking_functions': host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "UNINSTALL PLUGIN data_masking;"') cmd = host.run('mysql --user=root --password='+ps_pwd+' -S/var/lib/mysql/mysql.sock -s -N -e "INSTALL component \''+cmpt+'\';"') diff --git a/docker-image-tests/ps/tests/test_ps_static.py b/docker-image-tests/ps/tests/test_ps_static.py index feebe05c8..eec399ee6 100644 --- a/docker-image-tests/ps/tests/test_ps_static.py +++ b/docker-image-tests/ps/tests/test_ps_static.py @@ -93,6 +93,6 @@ def test_mysql_keyring_permissions(self, host): def test_telemetry_disabled(self, host): if ps_version_major in ['5.6']: - pytest.skip('telemetry was added in 5.7, 8.0 and 8.1') + pytest.skip('telemetry was added in 5.7, 8.0 and 8.x') else: assert not host.file('/usr/local/percona/telemetry_uuid').exists