Skip to content

Commit f80b3b9

Browse files
palichoroba
authored andcommitted
Add Ubuntu Trusty MySQL 5.5 PIC library with Embedded server for testing to Github Actions CI
Some code for client PIC library was already in .github/workflows/ci.yaml (from Travis-CI conversion) but incomplete and non-working. Fix it and use DBD_MARIADB_TESTEMBDATADIR and DBD_MARIADB_TESTEMBOPTIONS env variables which are parsed by Makefile.PL for --testembdatadir and --testemboptions parameters.
1 parent 0e01277 commit f80b3b9

File tree

1 file changed

+45
-10
lines changed

1 file changed

+45
-10
lines changed

.github/workflows/ci.yaml

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -256,12 +256,26 @@ jobs:
256256
client-version: mariadbconc-3.0.2
257257
- server-version: mysql-4.1.22
258258
client-version: mariadbconc-3.0.6
259-
# MySQL client versions 8.0.4 - 8.0.34 and 8.1.0 have bug which
259+
# MySQL client versions 8.0.4 - 8.4.0 and 8.1.0 have bug which
260260
# prevents connection to MySQL server versions prior 5.5.7
261261
- server-version: mysql-4.1.22
262-
client-version: mysql-8.0.35
262+
client-version: mysql-8.0.3-rc
263263
- server-version: mysql-5.1.72
264264
client-version: mysql-8.0.3-rc
265+
- server-version: system-pic
266+
client-version: system-pic
267+
- server-version: mysql-5.7.43
268+
client-version: system-pic
269+
- server-version: mysql-8.0.35
270+
client-version: system-pic
271+
- server-version: mariadb-5.5.40
272+
client-version: system-pic
273+
- server-version: mariadb-10.0.38
274+
client-version: system-pic
275+
- server-version: mariadb-10.2.44
276+
client-version: system-pic
277+
- server-version: mariadb-10.4.2
278+
client-version: system-pic
265279
- server-version: none
266280
client-version: system
267281
- perl-version: 5.12.0
@@ -313,6 +327,21 @@ jobs:
313327
sudo apt install mariadb-server
314328
sudo systemctl start mariadb.service
315329
sudo mariadb -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost' IDENTIFIED BY 'test'"
330+
- name: Install MySQL embedded PIC library
331+
if: ${{ matrix.client-version == 'system-pic' || matrix.server-version == 'system-pic' }}
332+
run: |
333+
wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/universe/m/mysql-5.5/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb
334+
wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb
335+
wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb
336+
wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.6_amd64.deb -O /tmp/multiarch-support_2.27-3ubuntu1.6_amd64.deb
337+
sudo apt install libaio-dev libwrap0-dev
338+
sudo apt install /tmp/libmysqld-pic_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/libmysqlclient-dev_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/libmysqlclient18_5.5.62-0ubuntu0.14.04.1_amd64.deb /tmp/multiarch-support_2.27-3ubuntu1.6_amd64.deb
339+
echo 'extern int sched_yield(void); int pthread_yield(void) { return sched_yield(); }' > "$HOME/libpthread_yield.c"
340+
gcc -O2 -o "$HOME/libpthread_yield.o" -c "$HOME/libpthread_yield.c"
341+
rm -f "$HOME/libpthread_yield.a"
342+
ar rcs "$HOME/libpthread_yield.a" "$HOME/libpthread_yield.o"
343+
sudo cp "$HOME/libpthread_yield.a" /usr/lib/mysql/
344+
316345
- name: Install Perl system
317346
if: ${{ matrix.perl-version == 'system' }}
318347
run: |
@@ -334,6 +363,7 @@ jobs:
334363
mariadb*) DB=MariaDB ;;
335364
none) DB=""; ;;
336365
system) DB=""; ;;
366+
system-pic) DB=""; ;;
337367
*) DB=unknown ;;
338368
esac
339369
case "${{ matrix.client-version }}" in
@@ -422,10 +452,13 @@ jobs:
422452
if [ ! -f "$CLIENT_FILE" ]; then wget --progress=bar:force "$CLIENT_URL" -O "$CLIENT_FILE" || exit 1; fi
423453
fi
424454
if [ "${{ matrix.client-version }}" = "system-pic" ]; then
425-
sed 's/-L\$pkglibdir *-lmysqld/-L\/usr\/lib\/mysql -lmysqld_pic /' `which mysql_config_pic` > "$HOME/mysql_config_pic"
455+
sed 's/-L\$pkglibdir *-lmysqld/-L\/usr\/lib\/mysql -lmysqld_pic -lpthread_yield /' `which mysql_config_pic` > "$HOME/mysql_config_pic"
426456
chmod +x $HOME/mysql_config_pic
427-
apt download mysql-server-core-5.5
428-
dpkg -x mysql-server-core-5.5_*.deb $HOME/mysql-server-core-5.5
457+
fi
458+
if [ "${{ matrix.client-version }}" = "system-pic" ] || [ "${{ matrix.server-version }}" = "system-pic" ]; then
459+
wget --progress=bar:force http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.5/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb -O /tmp/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb
460+
dpkg -x /tmp/mysql-server-core-5.5_5.5.62-0ubuntu0.14.04.1_amd64.deb $HOME/mysql-server-core-5.5
461+
mkdir -p "$HOME/datadir"
429462
fi
430463
if [ -n "$DB" ]; then
431464
cpanm --quiet --notest --skip-satisfied MySQL::Sandbox || exit 1
@@ -470,6 +503,9 @@ jobs:
470503
export DBD_MARIADB_TESTPASSWORD=test
471504
export DBD_MARIADB_TESTHOST=127.0.0.1
472505
export DBD_MARIADB_TESTPORT=3306
506+
elif [ "${{ matrix.server-version }}" = "system-pic" ]; then
507+
export DBD_MARIADB_TESTHOST=embedded
508+
export DBD_MARIADB_TESTEMBDATADIR="$HOME/datadir"
473509
elif [ "${{ matrix.server-version }}" = "none" ]; then
474510
export DBD_MARIADB_TESTHOST=0.0.0.0
475511
export DBD_MARIADB_TESTPORT=0
@@ -496,8 +532,10 @@ jobs:
496532
fi
497533
elif [ "${{ matrix.client-version }}" = "same-as-server" ] && [ "${{ matrix.server-version }}" != "system" ]; then
498534
export DBD_MARIADB_CONFIG="$HOME/mysql_config"
535+
export DBD_MARIADB_TESTEMBOPTIONS="--language=`find $HOME/sandbox/* -name english | sed 's/english//'`,--log-error=/dev/null"
499536
elif [ "${{ matrix.client-version }}" = "system-pic" ]; then
500537
export DBD_MARIADB_CONFIG="$HOME/mysql_config_pic"
538+
export DBD_MARIADB_TESTEMBOPTIONS="--language=$HOME/mysql-server-core-5.5/usr/share/mysql/,--log-error=/dev/null"
501539
export DBD_MARIADB_REQUIREEMBSUP=1
502540
fi
503541
make realclean || true
@@ -513,12 +551,9 @@ jobs:
513551
if [ "${{ matrix.perl-version }}" = "system" ]; then
514552
eval $(perl -I"$HOME/perl5/lib/perl5" -Mlocal::lib)
515553
fi
516-
if [ "${{ matrix.client-version }}" = "system-pic" ]; then
517-
export DBD_MARIADB_TESTLANGDIR="$HOME/mysql-server-core-5.5/usr/share/mysql/english"
518-
elif [ "${{ matrix.server-version }}" != "none" ] && [ "${{ matrix.server-version }}" != "system" ]; then
519-
export DBD_MARIADB_TESTLANGDIR=`find $HOME/sandbox/* -name english | head -1`
554+
if [ "${{ matrix.server-version }}" != "system-pic" ]; then
555+
export HARNESS_OPTIONS=j4
520556
fi
521-
export HARNESS_OPTIONS=j4
522557
export RELEASE_TESTING=1
523558
if [ "${{ matrix.server-version }}" != "none" ]; then
524559
export CONNECTION_TESTING=1

0 commit comments

Comments
 (0)