From 3b241c4f58b2eeebcc456835d1ccd42b1ef05e47 Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Mon, 13 Aug 2018 18:41:36 -0400 Subject: [PATCH 1/7] update CI for Julia 1.0 --- .travis.yml | 8 ++++++-- REQUIRE | 2 +- appveyor.yml | 10 +++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index a0baf61..e2a8257 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,8 @@ matrix: include: - os: linux julia: 0.7 + - os: linux + julia: 1.0 - os: linux julia: nightly - os: linux @@ -14,11 +16,13 @@ matrix: env: "CMAKE_JL_BUILD_FROM_SOURCE=1" - os: osx julia: 0.7 + - os: osx + julia: 1.0 - os: osx julia: 0.7 env: "CMAKE_JL_BUILD_FROM_SOURCE=1" - # allow_failures: - # - julia: nightly + allow_failures: + - julia: nightly notifications: email: false branches: diff --git a/REQUIRE b/REQUIRE index cb1804e..7ecaa1f 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,2 +1,2 @@ -julia 0.7-alpha +julia 0.7 BinDeps 0.4 diff --git a/appveyor.yml b/appveyor.yml index deb2424..2ea2ac1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,11 +8,11 @@ platform: - x86 # 32-bit - x64 # 64-bit -# # Uncomment the following lines to allow failures on nightly julia -# # (tests will run but not make your overall status red) -# matrix: -# allow_failures: -# - julia_version: nightly +# Uncomment the following lines to allow failures on nightly julia +# (tests will run but not make your overall status red) +matrix: + allow_failures: + - julia_version: nightly branches: only: From 4997c8e37e34a40f77a4fcb90cf3ad42b242afa6 Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Mon, 13 Aug 2018 18:42:17 -0400 Subject: [PATCH 2/7] update coverage script --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index e2a8257..a3744c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,3 +27,5 @@ notifications: email: false branches: only: master +after_success: + - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())' From 08fdbb9ba5d69973a1d602270ad57b4aead3573e Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Thu, 16 Aug 2018 14:19:35 -0400 Subject: [PATCH 3/7] test on Julia 1.0 --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a3744c4..4521a03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,9 @@ matrix: - os: linux julia: 0.7 env: "CMAKE_JL_BUILD_FROM_SOURCE=1" + - os: linux + julia: 1.0 + env: "CMAKE_JL_BUILD_FROM_SOURCE=1" - os: linux julia: nightly env: "CMAKE_JL_BUILD_FROM_SOURCE=1" @@ -19,7 +22,7 @@ matrix: - os: osx julia: 1.0 - os: osx - julia: 0.7 + julia: 1.0 env: "CMAKE_JL_BUILD_FROM_SOURCE=1" allow_failures: - julia: nightly From c86f2084501080085d138f11b0459f2c9b622c2c Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Thu, 16 Aug 2018 14:20:08 -0400 Subject: [PATCH 4/7] need latest bindeps.jl --- REQUIRE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/REQUIRE b/REQUIRE index 7ecaa1f..4909528 100644 --- a/REQUIRE +++ b/REQUIRE @@ -1,2 +1,2 @@ julia 0.7 -BinDeps 0.4 +BinDeps 0.8.10 From b80635a4238e6f7c5e48c3d52d187de612245c14 Mon Sep 17 00:00:00 2001 From: Avik Sengupta Date: Sat, 8 Sep 2018 11:21:58 +0100 Subject: [PATCH 5/7] orkaround for symlink-unfriendly filesystems --- deps/build.jl | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/deps/build.jl b/deps/build.jl index 8f3fbaa..2406b39 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -12,10 +12,35 @@ else binary_name = "cmake" end +function probe_symlink_creation(dest::AbstractString) + while !isdir(dest) + dest = dirname(dest) + end + + # Build arbitrary (non-existent) file path name + link_path = joinpath(dest, "binaryprovider_symlink_test") + while ispath(link_path) + link_path *= "1" + end + + try + symlink("foo", link_path) + return true + catch e + if isa(e, Base.IOError) + return false + end + rethrow(e) + finally + rm(link_path; force=true) + end +end + function install_binaries(file_base, file_ext, binary_dir) filename = "$(file_base).$(file_ext)" url = "$(base_url)/$(filename)" binary_path = joinpath(basedir, "downloads", file_base, binary_dir) + copyderef = get(ENV, "BINARYPROVIDER_COPYDEREF", "") == "true" || !probe_symlink_creation(binary_path) @static if Sys.iswindows() install_step = () -> begin @@ -28,8 +53,14 @@ function install_binaries(file_base, file_ext, binary_dir) else install_step = () -> begin for file in readdir(binary_path) - symlink(joinpath(binary_path, file), + if !copyderef + symlink(joinpath(binary_path, file), joinpath(prefix, "bin", file)) + else + cp(joinpath(binary_path, file), + joinpath(prefix, "bin", file); + force=true) + end end end end From 1fcb2608bc1327e465ac1bf5225fec7588b5d00b Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Sat, 8 Sep 2018 16:13:30 -0400 Subject: [PATCH 6/7] test copyderef build path --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4521a03..c9d6749 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,9 @@ matrix: - os: linux julia: 1.0 env: "CMAKE_JL_BUILD_FROM_SOURCE=1" + - os: linux + julia: 1.0 + env: "BINARYPROVIDER_COPYDEREF=true" - os: linux julia: nightly env: "CMAKE_JL_BUILD_FROM_SOURCE=1" @@ -21,6 +24,9 @@ matrix: julia: 0.7 - os: osx julia: 1.0 + - os: osx + julia: 1.0 + env: "BINARYPROVIDER_COPYDEREF=true" - os: osx julia: 1.0 env: "CMAKE_JL_BUILD_FROM_SOURCE=1" From 2298050d3f18594b7a021eb8fd1e15288c366865 Mon Sep 17 00:00:00 2001 From: Robin Deits Date: Sat, 8 Sep 2018 17:04:09 -0400 Subject: [PATCH 7/7] try to render the build log --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index c9d6749..919f5dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,5 +36,12 @@ notifications: email: false branches: only: master +before_script: + # Every 30 seconds, look for the build log file. If it exists, then + # start watching its contents and printing them to stdout as they + # change. This has two effects: + # 1. it avoids Travis timing out because the build outputs nothing + # 2. it makes it more obvious what part of the build, if any, gets stuck + - while sleep 30; do tail ~/build/JuliaPackaging/CMake.jl/deps/build.log -f ; done & after_success: - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())'