From 51b3c50082f694c426ce30466512cf968c9c7d52 Mon Sep 17 00:00:00 2001 From: SingingBush Date: Sat, 5 Oct 2019 11:14:13 +0100 Subject: [PATCH 1/3] update travis CI build --- .travis.yml | 104 ++++++++++++++++++++++++++-------------------------- ci_setup.d | 7 +++- 2 files changed, 57 insertions(+), 54 deletions(-) diff --git a/.travis.yml b/.travis.yml index dbb420e0..a26565a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,12 @@ 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 ] install: $DMD -ofci_setup ci_setup.d && ./ci_setup @@ -11,10 +14,22 @@ script: ./run_tests --mode=combined matrix: include: + - 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 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 - d: dmd-2.078.3 env: USE_UNIT_THREADED=true - d: dmd-2.077.1 @@ -28,8 +43,22 @@ matrix: - d: dmd-2.070.2 - d: dmd-2.069.2 - d: dmd-2.068.2 + - 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: 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: ldc-1.8.0 env: USE_UNIT_THREADED=true - d: ldc-1.7.0 @@ -42,71 +71,55 @@ 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 + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 # 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 + # Test alternative db versions, but only on latest compiler version + - 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 - os: osx - osx_image: xcode9 # use OSX 10.13 - - - 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 + - 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 - - 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 @@ -118,10 +131,10 @@ matrix: # Test with all dependencies updated # (dub.selections.json is deliberately kept old) - - d: dmd-2.080.0 + - d: dmd services: - mysql - env: DUB_UPGRADE=true DB=mysql-default + env: USE_UNIT_THREADED=true DUB_UPGRADE=true DB=mysql-default allow_failures: # Doesn't appear to exist on travis: https://github.com/travis-ci/travis-ci/issues/8849 @@ -133,25 +146,12 @@ matrix: # 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 + - d: dmd 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.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 diff --git a/ci_setup.d b/ci_setup.d index 011bafa3..6a07f79e 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; } From 6a5486e093f4dd123560c893ac2fc63c22d50626 Mon Sep 17 00:00:00 2001 From: SingingBush Date: Sat, 5 Oct 2019 12:07:55 +0100 Subject: [PATCH 2/3] Add missing dub selections file for vibe 0.8.6 --- ci_setup.d | 8 ++++++-- dub.selections.vibe-0.8.3.json | 12 ------------ dub.selections.vibe-0.8.6.json | 12 ++++++++++++ ...ibe-0.8.3.json => dub.selections.vibe-0.8.6.json} | 10 +++++----- 4 files changed, 23 insertions(+), 19 deletions(-) delete mode 100644 dub.selections.vibe-0.8.3.json create mode 100644 dub.selections.vibe-0.8.6.json rename examples/homePage/{dub.selections.vibe-0.8.3.json => dub.selections.vibe-0.8.6.json} (50%) diff --git a/ci_setup.d b/ci_setup.d index 6a07f79e..a4929517 100644 --- a/ci_setup.d +++ b/ci_setup.d @@ -38,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" } } From 3d2876ca0a94a0b3762e7bbed0c7ce2ddd94e69d Mon Sep 17 00:00:00 2001 From: SingingBush Date: Wed, 9 Oct 2019 20:51:15 +0100 Subject: [PATCH 3/3] Fix Mac build --- .travis.yml | 15 ++++++++++----- Brewfile | 3 +++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 Brewfile diff --git a/.travis.yml b/.travis.yml index a26565a7..4a2621c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,8 @@ addons: apt: update: true packages: [ libevent-dev ] + homebrew: + brewfile: true install: $DMD -ofci_setup ci_setup.d && ./ci_setup script: ./run_tests --mode=combined @@ -117,11 +119,12 @@ matrix: - 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: ldc + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - d: dmd-2.068.2 os: osx @@ -142,18 +145,20 @@ matrix: # 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 - 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 os: osx - osx_image: xcode9 # use OSX 10.13 + osx_image: xcode11 # use OSX 10.14 - d: ldc + env: USE_UNIT_THREADED=true DUB_SELECT=vibe-0.8.6 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