Skip to content

Commit 8c472ef

Browse files
committed
Travis: Support OSX testing against both mysql 5.6 and latest available mysql.
1 parent 1bddf99 commit 8c472ef

File tree

2 files changed

+51
-7
lines changed

2 files changed

+51
-7
lines changed

.travis.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ addons:
133133
mariadb: '10.1'
134134
apt:
135135
packages: [ libevent-dev ]
136+
env: DB=mariadb-10.1
136137

137138
install: $DMD -ofci_setup ci_setup.d && ./ci_setup
138139
script: ./run_tests --mode=travis
@@ -278,47 +279,66 @@ matrix:
278279
- d: dmd-2.088.0
279280
os: osx
280281
osx_image: xcode11.2 # use OSX 10.14
282+
env: DB=mysql-5.6
281283

282284
- d: dmd-2.088.0
283285
os: osx
284286
osx_image: xcode11.2 # use OSX 10.14
287+
env: DB=mysql-5.6
285288

286289
- d: dmd-2.080.0
287290
os: osx
288291
osx_image: xcode9.4 # use OSX 10.13
292+
env: DB=mysql-5.6
289293

290294
- d: dmd-2.079.1
291295
os: osx
292296
osx_image: xcode9.4 # use OSX 10.13
297+
env: DB=mysql-5.6
293298

294299
- d: dmd-2.078.3
295300
os: osx
296301
osx_image: xcode9.4 # use OSX 10.13
302+
env: DB=mysql-5.6
297303

298304
- d: ldc-1.9.0
299305
os: osx
300306
osx_image: xcode9.4 # use OSX 10.13
307+
env: DB=mysql-5.6
301308

302309
- d: ldc-1.8.0
303310
os: osx
304311
osx_image: xcode9.4 # use OSX 10.13
312+
env: DB=mysql-5.6
305313

306314
- d: dmd-2.068.2
307315
env: NO_VIBE=true
308316
os: osx
309317
osx_image: xcode9.4 # use OSX 10.13
318+
env: DB=mysql-5.6
310319

311320
- d: ldc-0.17.0
312321
env: NO_VIBE=true
313322
os: osx
314323
osx_image: xcode9.4 # use OSX 10.13
324+
env: DB=mysql-5.6
315325

316326
# Test with all dub dependencies fully updated
317327
# (dub.selections.json is deliberately kept old)
318328
- d: dmd-2.088.0
319329
services:
320330
- mysql
321331
env: DUB_UPGRADE=true DB=mysql-default
332+
- d: dmd-2.088.0
333+
os: osx
334+
osx_image: xcode11.2 # use OSX 10.14
335+
env: DUB_UPGRADE=true DB=mysql-5.6
336+
337+
# Test with latest mysql server available in OSX brew
338+
- d: dmd-2.088.0
339+
os: osx
340+
osx_image: xcode11.2 # use OSX 10.14
341+
env: DB=mysql-latest
322342

323343
allow_failures:
324344
# Doesn't appear to exist on travis: https://github.com/travis-ci/travis-ci/issues/8849
@@ -333,6 +353,10 @@ matrix:
333353
services:
334354
- mysql
335355
env: DUB_UPGRADE=true DB=mysql-default
356+
- d: dmd-2.088.0 # All dub dependencies fully updated
357+
os: osx
358+
osx_image: xcode11.2 # use OSX 10.14
359+
env: DUB_UPGRADE=true DB=mysql-5.6
336360

337361
# Currently failing on travis:
338362
# https://github.com/mysql-d/mysql-native/issues/208
@@ -343,7 +367,11 @@ matrix:
343367
packages: [ libevent-dev ]
344368
env: DB=mariadb-10.4 USE_UNIT_THREADED=true
345369

346-
# These are currently failing because mysql-native does not yet
370+
# Test with latest mysql server available in OSX brew
371+
# Currently failing because mysql-native does not yet
347372
# support MySQL v8.0.4's new default authentication mechanism: caching_sha2_password
348373
# See issue #189: https://github.com/mysql-d/mysql-native/issues/189
349-
#TODO: Add test for OSX brew's latest available mysql server
374+
- d: dmd-2.088.0
375+
os: osx
376+
osx_image: xcode11.2 # use OSX 10.14
377+
env: DB=mysql-latest

ci_setup.d

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ void copyIfExists(string from, string to)
1818
copy(from, to);
1919
}
2020

21-
void main()
21+
int main()
2222
{
2323
auto haveRdmd = executeShell("rdmd --help").status == 0;
2424
if(!haveRdmd)
@@ -32,10 +32,24 @@ void main()
3232
auto mysqlPrefix = "";
3333
if(environment["TRAVIS_OS_NAME"] == "osx")
3434
{
35-
spawnShell("brew update").wait;
36-
spawnShell("brew install libevent").wait;
37-
spawnShell("brew install mysql@5.6 && brew services start mysql56").wait;
38-
mysqlPrefix = "/usr/local/opt/mysql@5.6/bin/";
35+
if(envGet("DB") == "mysql-5.6")
36+
{
37+
spawnShell("brew update").wait;
38+
spawnShell("brew install libevent").wait; // Is libevent still needed on OSX?
39+
spawnShell("brew install mysql@5.6 && brew services start mysql56").wait;
40+
mysqlPrefix = "/usr/local/opt/mysql@5.6/bin/";
41+
}
42+
else if(envGet("DB") == "mysql-latest")
43+
{
44+
spawnShell("brew update").wait;
45+
spawnShell("brew install libevent").wait; // Is libevent still needed on OSX?
46+
spawnShell("brew install mysql && brew services start mysql").wait;
47+
}
48+
else
49+
{
50+
writeln("Envar 'DB' must be 'mysql-5.6' or 'mysql-latest', not '", envGet("DB"), "'");
51+
return 1;
52+
}
3953
}
4054

4155
// If an alternate dub.selections.json was requested, use it.
@@ -74,4 +88,6 @@ void main()
7488
spawnShell(mysqlPrefix~`mysql -u root -e 'SHOW VARIABLES LIKE "%version%";'`).wait;
7589
spawnShell(mysqlPrefix~`mysql -u root -e 'CREATE DATABASE mysqln_testdb;'`).wait;
7690
write("testConnectionStr.txt", "host=127.0.0.1;port=3306;user=root;pwd=;db=mysqln_testdb");
91+
92+
return 0;
7793
}

0 commit comments

Comments
 (0)