From e7f7f1acfcdda0f9db5085690b92dd345d07261b Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 17:42:18 -0800 Subject: [PATCH 1/7] CI: Add Ruby 3.4, MySQL 8.4, MariaDB 11.4, Ubuntu 24.04 --- .github/workflows/build.yml | 7 +++- ci/mariadb114.sh | 10 ++++++ ci/mysql57.sh | 2 +- ci/mysql80.sh | 2 +- ci/mysql84.sh | 13 +++++++ ci/setup.sh | 12 +++++++ support/B7B3B788A8D3785C.asc | 66 ++++++++++++++++++++++++++++++++++++ 7 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 ci/mariadb114.sh create mode 100644 ci/mysql84.sh create mode 100644 support/B7B3B788A8D3785C.asc diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 79f7d10f..2b0cca4a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,11 @@ jobs: matrix: include: # Ruby 3.x on Ubuntu 22.04 LTS (latest at this time) - - {os: ubuntu-22.04, ruby: 'head', db: mysql80} + - {os: ubuntu-24.04, ruby: 'head', db: mysql84} + - {os: ubuntu-24.04, ruby: '3.4', db: mysql84} + + # Ruby 3.x on Ubuntu 22.04 LTS (latest at this time) + - {os: ubuntu-22.04, ruby: '3.4', db: mysql80} - {os: ubuntu-22.04, ruby: '3.3', db: mysql80} - {os: ubuntu-22.04, ruby: '3.2', db: mysql80} - {os: ubuntu-22.04, ruby: '3.1', db: mysql80} @@ -29,6 +33,7 @@ jobs: # db: on Linux, ci/setup.sh installs the specified packages # db: on MacOS, installs a Homebrew package use "name@X.Y" to specify a version + - {os: ubuntu-24.04, ruby: '3.4', db: mariadb11.4} - {os: ubuntu-22.04, ruby: '3.0', db: mariadb10.11} - {os: ubuntu-22.04, ruby: '2.7', db: mariadb10.11} - {os: ubuntu-22.04, ruby: '3.0', db: mariadb10.6} diff --git a/ci/mariadb114.sh b/ci/mariadb114.sh new file mode 100644 index 00000000..6225972a --- /dev/null +++ b/ci/mariadb114.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -eux + +apt purge -qq '^mysql*' '^libmysql*' +rm -fr /etc/mysql +rm -fr /var/lib/mysql + +apt-key add support/C74CD1D8.asc +add-apt-repository "deb https://deb.mariadb.org/11.4/ubuntu $(lsb_release -cs) main" +apt install -y -o Dpkg::Options::='--force-confnew' mariadb-server libmariadb-dev diff --git a/ci/mysql57.sh b/ci/mysql57.sh index 8c892831..9cd681ff 100644 --- a/ci/mysql57.sh +++ b/ci/mysql57.sh @@ -7,7 +7,7 @@ rm -fr /etc/mysql rm -fr /var/lib/mysql apt-key add support/5072E1F5.asc # old signing key apt-key add support/3A79BD29.asc # 5.7.37 and higher -apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C +apt-key add support/B7B3B788A8D3785C.asc # 8.1 and higher # Verify the repository as add-apt-repository does not. wget -q --spider http://repo.mysql.com/apt/ubuntu/dists/$(lsb_release -cs)/mysql-5.7 add-apt-repository 'http://repo.mysql.com/apt/ubuntu mysql-5.7' diff --git a/ci/mysql80.sh b/ci/mysql80.sh index ae7e8831..814412c6 100644 --- a/ci/mysql80.sh +++ b/ci/mysql80.sh @@ -7,7 +7,7 @@ rm -fr /etc/mysql rm -fr /var/lib/mysql apt-key add support/5072E1F5.asc # old signing key apt-key add support/3A79BD29.asc # 8.0.28 and higher -apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C +apt-key add support/B7B3B788A8D3785C.asc # 8.1 and higher # Verify the repository as add-apt-repository does not. wget -q --spider http://repo.mysql.com/apt/ubuntu/dists/$(lsb_release -cs)/mysql-8.0 add-apt-repository 'http://repo.mysql.com/apt/ubuntu mysql-8.0' diff --git a/ci/mysql84.sh b/ci/mysql84.sh new file mode 100644 index 00000000..5c78da55 --- /dev/null +++ b/ci/mysql84.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -eux + +apt-get purge -qq '^mysql*' '^libmysql*' +rm -fr /etc/mysql +rm -fr /var/lib/mysql +apt-key add support/B7B3B788A8D3785C.asc # 8.1 and higher +# Verify the repository as add-apt-repository does not. +wget -q --spider http://repo.mysql.com/apt/ubuntu/dists/$(lsb_release -cs)/mysql-8.4-lts +add-apt-repository 'http://repo.mysql.com/apt/ubuntu mysql-8.4-lts' +apt-get update -qq +apt-get install -qq mysql-server libmysqlclient-dev diff --git a/ci/setup.sh b/ci/setup.sh index 938f0c8d..b54dedba 100644 --- a/ci/setup.sh +++ b/ci/setup.sh @@ -48,6 +48,12 @@ if [[ -n ${DB-} && x$DB =~ ^xmysql80 ]]; then CHANGED_PASSWORD=true fi +# Install MySQL 8.4 if DB=mysql84 +if [[ -n ${DB-} && x$DB =~ ^xmysql84 ]]; then + sudo bash ci/mysql84.sh + CHANGED_PASSWORD=true +fi + # Install MariaDB 10.6 if DB=mariadb10.6 if [[ -n ${GITHUB_ACTIONS-} && -n ${DB-} && x$DB =~ ^xmariadb10.6 ]]; then sudo bash ci/mariadb106.sh @@ -60,6 +66,12 @@ if [[ -n ${GITHUB_ACTIONS-} && -n ${DB-} && x$DB =~ ^xmariadb10.11 ]]; then CHANGED_PASSWORD_BY_RECREATE=true fi +# Install MariaDB 11.4 if DB=mariadb11.4 +if [[ -n ${GITHUB_ACTIONS-} && -n ${DB-} && x$DB =~ ^xmariadb11.4 ]]; then + sudo bash ci/mariadb114.sh + CHANGED_PASSWORD_BY_RECREATE=true +fi + # Install MySQL/MariaDB if OS=darwin if [[ x$OSTYPE =~ ^xdarwin ]]; then brew update > /dev/null diff --git a/support/B7B3B788A8D3785C.asc b/support/B7B3B788A8D3785C.asc new file mode 100644 index 00000000..9c9f7920 --- /dev/null +++ b/support/B7B3B788A8D3785C.asc @@ -0,0 +1,66 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: Hostname: +Version: Hockeypuck 2.2 + +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 +73BwBlSVqPeJ3dPGq4CW53iVYPM= +=mheB +-----END PGP PUBLIC KEY BLOCK----- From 8dbc5b5a4f08e2ff897824f434e818212a5a7e25 Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 17:45:38 -0800 Subject: [PATCH 2/7] Spec: adjust text field lengths following utf8mb4 change --- spec/mysql2/result_spec.rb | 12 ++++++------ spec/spec_helper.rb | 4 ++++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spec/mysql2/result_spec.rb b/spec/mysql2/result_spec.rb index ed3e9d26..ac42f2de 100644 --- a/spec/mysql2/result_spec.rb +++ b/spec/mysql2/result_spec.rb @@ -133,7 +133,7 @@ it "should return correct types" do expected_types = %w[ mediumint(9) - varchar(10) + varchar(13) bit(64) bit(1) tinyint(4) @@ -152,16 +152,16 @@ timestamp time year(4) - char(10) - varchar(10) + char(13) + varchar(13) binary(10) varbinary(10) tinyblob - tinytext + text(1020) blob - text + text(262140) mediumblob - mediumtext + text(67108860) longblob longtext enum diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 677c3482..754c25de 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -19,6 +19,10 @@ RSpec.configure do |config| config.disable_monkey_patching! + config.expect_with :rspec do |expectations| + expectations.max_formatted_output_length = 1200 + end + def with_internal_encoding(encoding) old_enc = Encoding.default_internal old_verbose = $VERBOSE From 83ca80df3565a8739b770321ecc5263ba4890970 Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 21:42:13 -0800 Subject: [PATCH 3/7] CI: Use caching_sha2_password in MySQL 8.0 and newer --- ci/setup.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ci/setup.sh b/ci/setup.sh index b54dedba..104241a1 100644 --- a/ci/setup.sh +++ b/ci/setup.sh @@ -4,6 +4,7 @@ set -eux # Change the password to be empty. CHANGED_PASSWORD=false +CHANGED_PASSWORD_SHA2=false # Change the password to be empty, recreating the root user on mariadb < 10.2 # where ALTER USER is not available. # https://stackoverflow.com/questions/56052177/ @@ -45,13 +46,13 @@ fi # Install MySQL 8.0 if DB=mysql80 if [[ -n ${DB-} && x$DB =~ ^xmysql80 ]]; then sudo bash ci/mysql80.sh - CHANGED_PASSWORD=true + CHANGED_PASSWORD_SHA2=true fi # Install MySQL 8.4 if DB=mysql84 if [[ -n ${DB-} && x$DB =~ ^xmysql84 ]]; then sudo bash ci/mysql84.sh - CHANGED_PASSWORD=true + CHANGED_PASSWORD_SHA2=true fi # Install MariaDB 10.6 if DB=mariadb10.6 @@ -120,6 +121,11 @@ if [ "${CHANGED_PASSWORD}" = true ]; then # https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ sudo mysql ${MYSQL_OPTS} -u "${DB_SYS_USER}" \ -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''" +elif [ "${CHANGED_PASSWORD_SHA2}" = true ]; then + # In MySQL 5.7, the default authentication plugin is mysql_native_password. + # As of MySQL 8.0, the default authentication plugin is changed to caching_sha2_password. + sudo mysql ${MYSQL_OPTS} -u "${DB_SYS_USER}" \ + -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY ''" elif [ "${CHANGED_PASSWORD_BY_RECREATE}" = true ]; then sudo mysql ${MYSQL_OPTS} -u "${DB_SYS_USER}" < Date: Thu, 26 Dec 2024 21:50:29 -0800 Subject: [PATCH 4/7] CI: There are no MySQL 5.7 builds for Ubuntu 20.04, this combo would have run as a container --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2b0cca4a..bdad7932 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -39,7 +39,9 @@ jobs: - {os: ubuntu-22.04, ruby: '3.0', db: mariadb10.6} - {os: ubuntu-20.04, ruby: '2.7', db: mariadb10.6} - {os: ubuntu-20.04, ruby: '2.7', db: mysql80} - - {os: ubuntu-20.04, ruby: '2.7', db: mysql57} + + # MySQL 5.7 packages stopped after Ubuntu 18.04 Bionic + # - {os: ubuntu-18.04, ruby: '2.7', db: mysql57} # TODO - Windows CI # - {os: windows-2022, ruby: '3.2', db: mysql80} From 457ffd951375bb7a8f0bbfea44410700a3862a98 Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 21:58:04 -0800 Subject: [PATCH 5/7] CI: pin MacOS brew package versions --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bdad7932..85414d3b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,8 +49,9 @@ jobs: # Allow failure due to this issue: # https://github.com/brianmario/mysql2/issues/1194 - - {os: macos-latest, ruby: '2.6', db: mariadb, ssl: openssl@1.1, allow-failure: true} - - {os: macos-latest, ruby: '2.6', db: mysql, ssl: openssl@1.1, allow-failure: true} + - {os: macos-latest, ruby: '3.4', db: mariadb@11.4, ssl: openssl@3, allow-failure: true} + - {os: macos-latest, ruby: '3.4', db: mysql@8.4, ssl: openssl@3, allow-failure: true} + - {os: macos-latest, ruby: '2.6', db: mysql@8.0, ssl: openssl@1.1, allow-failure: true} # On the fail-fast: true, it cancels all in-progress jobs # if any matrix job fails, which we don't want. fail-fast: false From 01f5d71cb2e89a38d0e2621ed500420735297c67 Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 22:20:04 -0800 Subject: [PATCH 6/7] CI: brew link kegged MariaDB 11.4 LTS --- ci/setup.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/setup.sh b/ci/setup.sh index 104241a1..0089a384 100644 --- a/ci/setup.sh +++ b/ci/setup.sh @@ -84,6 +84,7 @@ if [[ x$OSTYPE =~ ^xdarwin ]]; then brew info "$DB" brew install "$DB" zstd + brew link "$DB" # explicitly activate in case of kegged LTS versions DB_PREFIX="$(brew --prefix "${DB}")" export PATH="${DB_PREFIX}/bin:${PATH}" export LDFLAGS="-L${DB_PREFIX}/lib" From 078067af164e7dd61af80d6601a364e5c4b9c31c Mon Sep 17 00:00:00 2001 From: Aaron Stone Date: Thu, 26 Dec 2024 22:26:11 -0800 Subject: [PATCH 7/7] CI: remove duplicate jobs, improve comments --- .github/workflows/build.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 85414d3b..90d122bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,11 +9,11 @@ jobs: strategy: matrix: include: - # Ruby 3.x on Ubuntu 22.04 LTS (latest at this time) + # Ruby 3.x on Ubuntu 24.04 LTS - {os: ubuntu-24.04, ruby: 'head', db: mysql84} - {os: ubuntu-24.04, ruby: '3.4', db: mysql84} - # Ruby 3.x on Ubuntu 22.04 LTS (latest at this time) + # Ruby 3.x on Ubuntu 22.04 LTS - {os: ubuntu-22.04, ruby: '3.4', db: mysql80} - {os: ubuntu-22.04, ruby: '3.3', db: mysql80} - {os: ubuntu-22.04, ruby: '3.2', db: mysql80} @@ -30,6 +30,10 @@ jobs: - {os: ubuntu-20.04, ruby: '2.1', db: mysql80} - {os: ubuntu-20.04, ruby: '2.0', db: mysql80} + # MySQL 5.7 packages stopped after Ubuntu 18.04 Bionic + # - {os: ubuntu-18.04, ruby: '2.7', db: mysql57} + + # MariaDB LTS versions # db: on Linux, ci/setup.sh installs the specified packages # db: on MacOS, installs a Homebrew package use "name@X.Y" to specify a version @@ -38,10 +42,6 @@ jobs: - {os: ubuntu-22.04, ruby: '2.7', db: mariadb10.11} - {os: ubuntu-22.04, ruby: '3.0', db: mariadb10.6} - {os: ubuntu-20.04, ruby: '2.7', db: mariadb10.6} - - {os: ubuntu-20.04, ruby: '2.7', db: mysql80} - - # MySQL 5.7 packages stopped after Ubuntu 18.04 Bionic - # - {os: ubuntu-18.04, ruby: '2.7', db: mysql57} # TODO - Windows CI # - {os: windows-2022, ruby: '3.2', db: mysql80} @@ -52,6 +52,7 @@ jobs: - {os: macos-latest, ruby: '3.4', db: mariadb@11.4, ssl: openssl@3, allow-failure: true} - {os: macos-latest, ruby: '3.4', db: mysql@8.4, ssl: openssl@3, allow-failure: true} - {os: macos-latest, ruby: '2.6', db: mysql@8.0, ssl: openssl@1.1, allow-failure: true} + # On the fail-fast: true, it cancels all in-progress jobs # if any matrix job fails, which we don't want. fail-fast: false