diff --git a/.travis.yml b/.travis.yml index dbb420e0..eeb64631 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,69 @@ language: d -sudo: false + +# seems the default 'xenial' isn't working well with mariadb (at some point we need to update to bionic) +dist: precise addons: mariadb: '10.1' apt: + update: true packages: [ libevent-dev ] + homebrew: + brewfile: true install: $DMD -ofci_setup ci_setup.d && ./ci_setup script: ./run_tests --mode=combined -matrix: +jobs: include: + - stage: Test with all dependencies updated (dub.selections.json is deliberately kept old) + d: dmd + env: USE_UNIT_THREADED=true DUB_UPGRADE=true DB=mysql-default + - d: dmd-beta + services: mysql + env: USE_UNIT_THREADED=true DUB_UPGRADE=true DB=mysql-default + + - stage: Build with gdc + d: gdc-6.3.0 + - d: gdc-4.8.5 + + - stage: Test with vibe-d 0.8.6 and various compiler versions + d: dmd + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: dmd-2.086.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: dmd-2.085.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: dmd-2.084.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: dmd-2.083.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: dmd-2.082.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - d: dmd-2.080.0 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 - d: dmd-2.079.1 - env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.3 - - d: dmd-2.078.3 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + + - d: ldc + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.17.0 # eq to dmd v2.087 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.16.0 # eq to dmd v2.086.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.15.0 # eq to dmd v2.085.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.14.0 # eq to dmd v2.084.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.13.0 # eq to dmd v2.083.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.12.0 # eq to dmd v2.082.1 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 + - d: ldc-1.9.0 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + + - stage: Test with vibe-d 0.7.32 and older compiler versions + d: dmd-2.078.3 env: USE_UNIT_THREADED=true - d: dmd-2.077.1 env: USE_UNIT_THREADED=true @@ -28,8 +76,7 @@ matrix: - d: dmd-2.070.2 - d: dmd-2.069.2 - d: dmd-2.068.2 - - d: ldc-1.9.0 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + - d: ldc-1.8.0 env: USE_UNIT_THREADED=true - d: ldc-1.7.0 @@ -42,73 +89,53 @@ matrix: - d: ldc-1.2.0 - d: ldc-1.1.1 - d: ldc-1.0.0 - - d: ldc-0.17.5 - - d: ldc-0.17.1 - - d: ldc-0.17.0 - - d: gdc-6.3.0 - - d: gdc-4.8.5 - - d: dmd-beta - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 - # Test alternative db versions, but only on one compiler version - - d: dmd-2.078.3 + - stage: Test alternative db versions, with latest dmd + d: dmd services: - mysql addons: # Remove "mariadb: ..." from default addons, but keep "libevent-dev" apt: packages: [ libevent-dev ] - env: DB=mysql-default USE_UNIT_THREADED=true + env: DB=mysql-default USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - - d: dmd-2.078.3 + - d: dmd addons: mariadb: '5.5' apt: packages: [ libevent-dev ] - env: DB=mariadb-5.5 USE_UNIT_THREADED=true + env: DB=mariadb-5.5 USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - - d: dmd-2.078.3 + - d: dmd addons: mariadb: '10.0' apt: packages: [ libevent-dev ] - env: DB=mariadb-10.0 USE_UNIT_THREADED=true + env: DB=mariadb-10.0 USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - - d: dmd-2.078.3 + - d: dmd addons: mariadb: '10.2' apt: packages: [ libevent-dev ] - env: DB=mariadb-10.2 USE_UNIT_THREADED=true + env: DB=mariadb-10.2 USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - - d: dmd-2.078.3 + - d: dmd addons: mariadb: '10.3' apt: packages: [ libevent-dev ] - env: DB=mariadb-10.3 USE_UNIT_THREADED=true + env: DB=mariadb-10.3 USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - # on Mac just test latest & oldest supported dmd and ldc - - d: dmd-2.080.0 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + - stage: Mac osx builds (only latest & oldest supported dmd and ldc) + d: dmd + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - - d: dmd-2.079.1 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + - d: ldc os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: dmd-2.078.3 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: ldc-1.9.0 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: ldc-1.8.0 - os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - d: dmd-2.068.2 os: osx @@ -116,44 +143,25 @@ matrix: - d: ldc-0.17.0 os: osx - # Test with all dependencies updated - # (dub.selections.json is deliberately kept old) - - d: dmd-2.080.0 - services: - - mysql - env: DUB_UPGRADE=true DB=mysql-default - allow_failures: # Doesn't appear to exist on travis: https://github.com/travis-ci/travis-ci/issues/8849 - d: gdc-6.3.0 # Occasional failures are expected here - d: dmd-beta + env: USE_UNIT_THREADED=true DUB_UPGRADE=true DB=mysql-default # These are currently failing because mysql-native does not yet # support MySQL v8.0.4's new default authentication mechanism: caching_sha2_password # See issue #189: https://github.com/mysql-d/mysql-native/issues/189 - - d: dmd-2.080.0 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 + - d: dmd + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - - d: dmd-2.079.1 - env: DUB_SELECT=vibe-0.8.3 # DMDFE 2.079+ doesn't support vibe.d v0.7.32 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: dmd-2.078.3 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: ldc-1.9.0 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - d: ldc-1.8.0 + - d: ldc os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - d: dmd-2.068.2 os: osx diff --git a/Brewfile b/Brewfile new file mode 100644 index 00000000..00ec48f2 --- /dev/null +++ b/Brewfile @@ -0,0 +1,3 @@ +# running 'brew bundle' will install required dependencies +brew 'libevent' +brew "mysql@5.6", restart_service: true, link: true, conflicts_with: ["mysql"] \ No newline at end of file diff --git a/ci_setup.d b/ci_setup.d index 011bafa3..a4929517 100644 --- a/ci_setup.d +++ b/ci_setup.d @@ -1,5 +1,6 @@ import std.file; import std.process; +import std.stdio : writefln; bool envBool(string name) { @@ -22,8 +23,10 @@ void main() auto haveRdmd = executeShell("rdmd --help").status == 0; if(!haveRdmd) { - auto dmdZip = "dmd.2.076.0."~environment["TRAVIS_OS_NAME"]~".zip"; - spawnShell("wget http://downloads.dlang.org/releases/2017/"~dmdZip).wait; + auto dmdVersion = "2.088.0"; + auto dmdZip = "dmd."~dmdVersion~"."~environment["TRAVIS_OS_NAME"]~".zip"; + writefln("Downloading %s from downloads.dlang.org", dmdZip); + spawnShell("wget http://downloads.dlang.org/releases/2.x/"~dmdVersion~"/"~dmdZip).wait; spawnShell("unzip -q -d local-dmd "~dmdZip).wait; } @@ -35,8 +38,12 @@ void main() } // If an alternate dub.selections.json was requested, use it. - copyIfExists("dub.selections."~envGet("DUB_SELECT")~".json", "dub.selections.json"); - copyIfExists("examples/homePage/dub.selections."~envGet("DUB_SELECT")~".json", "examples/homePage/dub.selections.json"); + if(environment.get("DUB_SELECT") != null) { + string dubSelections = "dub.selections."~envGet("DUB_SELECT")~".json"; + writefln("Using alternative dub dependencies file: %s", dubSelections); + copyIfExists(dubSelections, "dub.selections.json"); + copyIfExists("examples/homePage/dub.selections."~envGet("DUB_SELECT")~".json", "examples/homePage/dub.selections.json"); + } if(envBool("DUB_UPGRADE")) { diff --git a/dub.selections.vibe-0.8.3.json b/dub.selections.vibe-0.8.3.json deleted file mode 100644 index 0c17a77b..00000000 --- a/dub.selections.vibe-0.8.3.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "fileVersion": 1, - "versions": { - "libasync": "0.8.2", - "libev": "5.0.0+4.04", - "libevent": "2.0.1+2.0.16", - "memutils": "0.4.8", - "openssl": "1.1.4+1.0.1g", - "unit-threaded": "0.7.45", - "vibe-d": "0.8.3" - } -} diff --git a/dub.selections.vibe-0.8.6.json b/dub.selections.vibe-0.8.6.json new file mode 100644 index 00000000..328aeeca --- /dev/null +++ b/dub.selections.vibe-0.8.6.json @@ -0,0 +1,12 @@ +{ + "fileVersion": 1, + "versions": { + "libasync": "0.8.4", + "libev": "5.0.0+4.04", + "libevent": "2.0.2+2.0.16", + "memutils": "0.4.13", + "openssl": "1.1.4+1.0.1g", + "unit-threaded": "0.7.55", + "vibe-d": "0.8.6" + } +} diff --git a/examples/homePage/dub.selections.vibe-0.8.3.json b/examples/homePage/dub.selections.vibe-0.8.6.json similarity index 50% rename from examples/homePage/dub.selections.vibe-0.8.3.json rename to examples/homePage/dub.selections.vibe-0.8.6.json index a85baed7..476a53a1 100644 --- a/examples/homePage/dub.selections.vibe-0.8.3.json +++ b/examples/homePage/dub.selections.vibe-0.8.6.json @@ -1,13 +1,13 @@ { "fileVersion": 1, "versions": { - "libasync": "0.8.2", + "libasync": "0.8.4", "libev": "5.0.0+4.04", - "libevent": "2.0.1+2.0.16", - "memutils": "0.4.8", + "libevent": "2.0.2+2.0.16", + "memutils": "0.4.13", "mysql-native": {"path":"../.."}, "openssl": "1.1.4+1.0.1g", - "unit-threaded": "0.7.45", - "vibe-d": "0.8.3" + "unit-threaded": "0.7.55", + "vibe-d": "0.8.6" } }