Skip to content

Commit

Permalink
no quiet on CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Songmu committed Apr 6, 2024
1 parent b1d3630 commit 060b9d0
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 51 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@ jobs:
fail-fast: false
matrix:
perl:
- '5.36'
- '5.38'
mysql:
- 'mysql-5.6'
- 'mysql-5.7'
- 'mysql-8.0'
- 'mariadb'
Expand All @@ -25,14 +23,17 @@ jobs:
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: ${{ matrix.perl }}
- run: |
- name: Install dependencies
run: |
author/ci_install_mysql.sh
cpanm --quiet --installdeps --notest .
if [[ "DATABASE_ADAPTER" == "mariadb" ]]; then
cpanm DBD::MariaDB
if [[ "$DATABASE_ADAPTER" == "mariadb" ]]; then
cpanm --quiet --notest DBD::MariaDB
else
cpanm DBD::mysql
cpanm --quiet --notest DBD::mysql
fi
prove -lvr
env:
DATABASE_ADAPTER: ${{ matrix.mysql }}
- run: mysql --version
- name: test
run: prove -lvr
19 changes: 0 additions & 19 deletions .travis.yml

This file was deleted.

1 change: 1 addition & 0 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Revision history for Perl extension Test::mysqld.

{{$NEXT}}
- Support DBD::MariaDB

1.0020 2024-04-05T16:35:54Z
- introduce GitHub Actions for CI
Expand Down
7 changes: 5 additions & 2 deletions META.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,12 @@
}
},
"runtime" : {
"recommends" : {
"DBD::MariaDB" : "0",
"DBD::mysql" : "0"
},
"requires" : {
"Class::Accessor::Lite" : "0",
"DBD::mysql" : "0",
"DBI" : "0",
"File::Copy::Recursive" : "0",
"File::Temp" : "0",
Expand Down Expand Up @@ -82,11 +85,11 @@
"John Napiorkowski <jjn1056@yahoo.com>",
"Kazuho Oku <kazuho@li1.kazuhooku.com>",
"Kazuho Oku <kazuhooku@gmail.com>",
"Masayuki Matsuki <y.songmu@gmail.com>",
"Matthew Horsfall <wolfsage@gmail.com>",
"NAKAGAWA Masaki <masaki.nakagawa@gmail.com>",
"Naoto Nakamura <naoto.nakamura@showroom.co.jp>",
"Petr Písař <ppisar@redhat.com>",
"Songmu <y.songmu@gmail.com>",
"Yoshikazu Sawa <883514+yoshikazusawa@users.noreply.github.com>",
"Yusuke Watase <ywatase@gmail.com>",
"Zhenjun Wang <zjwang0414@gmail.com>",
Expand Down
19 changes: 10 additions & 9 deletions author/ci_install_mysql.sh
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
#!/bin/bash
set -ex

if [[ $DATABASE_ADAPTER =~ (mariadb|mysql-(5\.[67]|8\.0)) ]]; then
if [[ $DATABASE_ADAPTER =~ (mariadb|mysql-(5\.7|8\.0)) ]]; then
sudo service mysql stop
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B7B3B788A8D3785C
if [[ $DATABASE_ADAPTER =~ mariadb ]]; then
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B7B3B788A8D3785C
# https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -q --yes --force-yes -f --option DPkg::Options::=--force-confnew install mariadb-server
sudo apt-get install libmariadb-dev
sudo apt-get update -q
sudo apt-get install -q --yes --force-yes -f --option DPkg::Options::=--force-confnew mariadb-server libmariadb-dev
sudo mariadb-upgrade
elif [[ $DATABASE_ADAPTER =~ mysql-(5\.[67]|8\.0) ]]; then
elif [[ $DATABASE_ADAPTER =~ mysql-(5\.7|8\.0) ]]; then
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# XXX: The switch to mysql 5.7 is not currently working....
cat <<EOC | sudo debconf-set-selections
mysql-apt-config mysql-apt-config/select-server select $DATABASE_ADAPTER
mysql-apt-config mysql-apt-config/repo-distro select ubuntu
mysql-apt-config mysql-apt-config/repo-codename select bionic
mysql-apt-config mysql-apt-config/repo-distro select ubuntu
EOC
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg --install mysql-apt-config_0.8.29-1_all.deb
sudo apt-get update -q
sudo apt-get install -q -y -o Dpkg::Options::=--force-confnew mysql-server
sudo mysql_upgrade
sudo apt-get install -q --yes --option Dpkg::Options::=--force-confnew mysql-server libmysqlclient-dev
fi
fi
21 changes: 10 additions & 11 deletions lib/Test/mysqld.pm
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,16 @@ use POSIX qw(SIGTERM WNOHANG);
use Time::HiRes qw(sleep);

my $driver = 'mysql';
BEGIN {
eval {
require DBD::mysql;
};
if ($@) {
eval {
require DBD::mysql;
require DBD::MariaDB;
$driver = 'MariaDB';
};
if ($@) {
eval {
require DBD::MariaDB;
$driver = 'MariaDB';
};
if ($@) {
die "DBD::mysql or DBD::MariaDB is required to use Test::mysqld";
}
die "DBD::mysql or DBD::MariaDB is required to use Test::mysqld";
}
}

Expand All @@ -42,8 +40,8 @@ my %Defaults = (
mysql_install_db => undef,
pid => undef,
copy_data_from => undef,
_owner_pid => undef,
driver => $driver,
_owner_pid => undef,
);

Class::Accessor::Lite->mk_accessors(keys %Defaults);
Expand Down Expand Up @@ -108,7 +106,8 @@ sub dsn {
# <https://mariadb.com/kb/en/authentication-from-mariadb-104/>
}
} else {
$args{mysql_socket} ||= $self->my_cnf->{socket};
my $socket_attr = $self->{driver} eq 'MariaDB' ? 'mariadb_socket' : 'mysql_socket';
$args{$socket_attr} ||= $self->my_cnf->{socket};
if (!$self->_use_unix_socket_auth) {
$args{user} ||= 'root';
}
Expand Down
15 changes: 12 additions & 3 deletions t/01-raii.t
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,20 @@ plan tests => 5;
my $base_dir = $mysqld->base_dir;
my $dsn = $mysqld->dsn;

my %expect = (
mysql => {
1 => "DBI:mysql:dbname=test;mysql_socket=$base_dir/tmp/mysql.sock",
0 => "DBI:mysql:dbname=test;mysql_socket=$base_dir/tmp/mysql.sock;user=root",
},
MariaDB => {
1 => "DBI:MariaDB:dbname=test;mariadb_socket=$base_dir/tmp/mysql.sock",
0 => "DBI:MariaDB:dbname=test;mariadb_socket=$base_dir/tmp/mysql.sock;user=root",
},
);

is(
$dsn,
$mysqld->_use_unix_socket_auth ?
"DBI:mysql:dbname=test;mysql_socket=$base_dir/tmp/mysql.sock" :
"DBI:mysql:dbname=test;mysql_socket=$base_dir/tmp/mysql.sock;user=root",
$expect{$mysqld->{driver}}{$mysqld->_use_unix_socket_auth ? 1 : 0},
'check dsn',
);

Expand Down

0 comments on commit 060b9d0

Please sign in to comment.