From 93cbea2d724fcad351a664030c903dbaba4cf463 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Wed, 15 Apr 2020 09:54:22 -0400 Subject: [PATCH 1/5] Update README with update CMake and compiler tested versions --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3a65e5872..f6cf96c4f 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,7 @@ VTK-m Requires: + MSVC 2015+ + Intel 17.0.4+ + [CMake](http://www.cmake.org/download/) - + CMake 3.8+ - + CMake 3.11+ (for Visual Studio generator) - + CMake 3.12+ (for OpenMP support) + + CMake 3.12+ + CMake 3.13+ (for CUDA support) Optional dependencies are: @@ -105,18 +103,18 @@ Optional dependencies are: VTK-m has been tested on the following configurations:c + On Linux - + GCC 4.8.5, 5.4.0, 6.4.0, 7.3.0, Clang 5.0, 6.0, 7.0, Intel 17.0.4, Intel 19.0.0 - + CMake 3.13.3, 3.14.1 - + CUDA 9.2.148, 10.0.130, 10.1.105 + + GCC 4.8.5, 5.4, 6.5, 7.4, 8.2, 9.2; Clang 5, 8; Intel 17.0.4; 19.0.0 + + CMake 3.12, 3.13, 3.16, 3.17 + + CUDA 9.2.148, 10.0.130, 10.1.105, 10.2.89 + TBB 4.4 U2, 2017 U7 + On Windows + Visual Studio 2015, 2017 - + CMake 3.8.2, 3.11.1, 3.12.4 + + CMake 3.12, 3.17 + CUDA 10.1 + TBB 2017 U3, 2018 U2 + On MacOS + AppleClang 9.1 - + CMake 3.12.3 + + CMake 3.12 + TBB 2018 From b2823d79aa986eee06070ecc1bede2d86108008d Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Wed, 15 Apr 2020 09:54:47 -0400 Subject: [PATCH 2/5] ubuntu1604 gcc48 builder install test now pass Problem was that CMake 3.12 was the CMake version used in the build image, and test image was using 3.13. This was a problem as the install test invocation aren't backwards convertible and therefore failed. --- .gitlab/ci/ubuntu1604.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitlab/ci/ubuntu1604.yml b/.gitlab/ci/ubuntu1604.yml index a36e15e3b..ca4e71d53 100644 --- a/.gitlab/ci/ubuntu1604.yml +++ b/.gitlab/ci/ubuntu1604.yml @@ -60,9 +60,7 @@ build:ubuntu1604_gcc48: - docker - linux extends: - #Requires the cuda docker image as it uses a sufficiently new - #enough CMake version that supports mpi - - .ubuntu1604_cuda + - .ubuntu1604 - .cmake_build_linux - .only-default variables: From 889cb33dded5ecbafe4bb258a85554f051d5a251 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Wed, 15 Apr 2020 11:01:12 -0400 Subject: [PATCH 3/5] gitlab-ci test jobs better handle false positive failures If ctest had to re-run failed tests and those test pass we now consider it a successful run --- .gitlab/ci/ctest_test.cmake | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/.gitlab/ci/ctest_test.cmake b/.gitlab/ci/ctest_test.cmake index 4b7abd4c9..9cf46e975 100644 --- a/.gitlab/ci/ctest_test.cmake +++ b/.gitlab/ci/ctest_test.cmake @@ -39,6 +39,33 @@ if(NOT DEFINED ENV{GITLAB_CI_EMULATION}) endif() if (test_result) - message(FATAL_ERROR - "Failed to test") + #Current ctest return value only tracks if tests failed on the initial run. + #So when we use repeat unit pass, and all tests now succede ctest will still + #report a failure, making our gitlab-ci pipeline look red when it isn't + # + #To work around this issue we check if `Testing/Temporary/LastTestsFailed_*.log` + #has a listing of tests that failed. + set(testing_log_dir "$ENV{CI_PROJECT_DIR}/build/Testing/Temporary") + file(GLOB tests_that_failed_log "${testing_log_dir}/LastTestsFailed_*.log") + if(tests_that_failed_log) + + #Make sure the file has tests listed + set(has_failing_tests true) + file(STRINGS "${tests_that_failed_log}" failed_tests) + list(LENGTH failed_tests length) + if(length LESS_EQUAL 1) + # each line looks like NUM:TEST_NAME + string(FIND "${failed_tests}" ":" location) + if(location EQUAL -1) + #no ":" so no tests actually failed after all the re-runs + set(has_failing_tests false) + endif() + endif() + + if(has_failing_tests) + message(STATUS "Failing test from LastTestsFailed.log: \n ${failed_tests}") + message(FATAL_ERROR "Failed to test") + endif() + endif() + endif () From 3c80b35b89ecfd6b2580cab64bbe3620a5310690 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Wed, 15 Apr 2020 12:12:55 -0400 Subject: [PATCH 4/5] ubuntu1604 test step needs to know where MPI install location is It needs the MPI location so that it can properly compile users of VTK-m with MPI as part of `*_built_against_test_install` tests --- .gitlab/ci/ubuntu1604.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab/ci/ubuntu1604.yml b/.gitlab/ci/ubuntu1604.yml index ca4e71d53..d0adead93 100644 --- a/.gitlab/ci/ubuntu1604.yml +++ b/.gitlab/ci/ubuntu1604.yml @@ -83,6 +83,9 @@ test:ubuntu1604_gcc48: #env flags to allow openmpi to run as root user OMPI_ALLOW_RUN_AS_ROOT: 1 OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 + #mpi location so that `built_against_test_install` tests + #pass + CMAKE_PREFIX_PATH: "/opt/openmpi/" dependencies: - build:ubuntu1604_gcc48 From 5c16b3be264dfbc98f2ab91c130714aff324b4e9 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Thu, 16 Apr 2020 08:47:07 -0400 Subject: [PATCH 5/5] ubuntu1604 builders now use the correct c && c++ compilers --- .gitlab/ci/ubuntu1604.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab/ci/ubuntu1604.yml b/.gitlab/ci/ubuntu1604.yml index d0adead93..3fa967aab 100644 --- a/.gitlab/ci/ubuntu1604.yml +++ b/.gitlab/ci/ubuntu1604.yml @@ -13,6 +13,8 @@ build:ubuntu1604_gcc5: - .cmake_build_linux - .only-default variables: + CC: "gcc-5" + CXX: "g++-5" CMAKE_BUILD_TYPE: RelWithDebInfo VTKM_SETTINGS: "cuda+pascal" @@ -64,6 +66,8 @@ build:ubuntu1604_gcc48: - .cmake_build_linux - .only-default variables: + CC: "gcc-4.8" + CXX: "g++-4.8" CMAKE_BUILD_TYPE: Release #custom openmpi install location CMAKE_PREFIX_PATH: "/opt/openmpi/" @@ -108,6 +112,8 @@ build:ubuntu1604_clang5: - .cmake_build_linux - .only-default variables: + CC: "clang-5.0" + CXX: "clang++-5.0" CMAKE_BUILD_TYPE: Debug VTKM_SETTINGS: "tbb+static+64bit_floats"