-
Notifications
You must be signed in to change notification settings - Fork 154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add GitHub Actions Workflows #836
Conversation
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## branch-23.02 #836 +/- ##
===============================================
Coverage ? 92.55%
===============================================
Files ? 24
Lines ? 1007
Branches ? 0
===============================================
Hits ? 932
Misses ? 75
Partials ? 0 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
cpp/CMakeLists.txt
Outdated
@@ -110,7 +110,10 @@ rapids_find_package( | |||
rapids_cpm_init() | |||
# find or add cuDF | |||
include(cmake/thirdparty/CUSPATIAL_GetCUDF.cmake) | |||
|
|||
# find or install GoogleTest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like a critical CMake eye here. I saw failures like the following:
CMake Error at tests/CMakeLists.txt:33 (target_link_libraries):
Target "QUADTREE_LINESTRING_FILTERING_TEST" links to:
GTest::gtest_main
but the target was not found. Possible reasons include:
* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.
Call Stack (most recent call first):
tests/CMakeLists.txt:101 (ConfigureTest)
I adapted this code to run get_gtest.cmake
from libcudf, and added run dependencies for gmock
and gtest
to libcuspatial-tests
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cudf exports the gtest targets in the case where cpm downloads gtest. My suspicion is that with GHA we're doing a better job of ensuring that gtest is already present in the conda environment than we were before (or in some other way we are ensuring that it's available), and as a result cudf isn't exporting the target and it's revealing the fact that cuspatial wasn't finding it on its own. Assuming that diagnosis is correct, though, I am not sure how best to handle this going forward. I have a feeling that we're going to need to revisit this anyway re: some of the ClobberWarnings that we discussed, it's not clear that we should be packaging up some pieces that we currently are.
@robertmaynard what do you think? Do we really want to be in a situation where cuspatial could also install a copy of gtest if it didn't find one? That's what copying in get_gtest.cmake
will do AFAICT.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aha. This sounds like it should be solved by adding gtest packages and avoiding the CPM fetch entirely. Maybe adding the logic for fetching gtest is fine, in case a user is missing those packages, but at CI build/test time I think we should be avoiding CPM fetches and use conda packages instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No we should fix the underlying issue here instead of calling get_gtest.cmake
. It would be good to back out the change and see what the full error message is, so we can find the root issue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In commit a629048, I fixed an issue with the specification of gtest in the conda recipe. The gtest/gmock conda packages are now available at build time and test run time, so CPM is not needed and this is no longer an issue for CI. As for source build correctness and whether CPM fetching should be possible outside the CI or conda context, I don’t have a concrete answer. I plan to revisit CPM/conda conflicts and ClobberWarnings from excessive CPM fetching in conda builds for all RAPIDS packages at some point in the future and may follow up with more questions. For now, we should not hold up the GitHub Actions migration on this packaging question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The C++ projects should configure correctly without conda. I'll clone this PR and see what's going on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This configures fine for me outside conda:
# Configure RMM
cmake -S /rmm -B /rmm/build -GNinja -DBUILD_TESTS=ON -DBUILD_BENCHMARKS=ON
# Configure cuDF
cmake -S /cudf/cpp -B /cudf/cpp/build -GNinja -DBUILD_TESTS=ON -DBUILD_BENCHMARKS=ON -Drmm_ROOT=/rmm/build
# Compile the jitify headers so `/cudf/cpp/build/include` dir exists for cuSpatial
# (this is a bug in cuDF's cmake, we shouldn't have to compile anything for the CMake package to be a valid target)
ninja -C /cudf/cpp/build jitify_preprocess_run
# Configure cuSpatail
cmake -S /cuspatial/cpp -B /cuspatial/cpp/build -GNinja -DBUILD_TESTS=ON -DBUILD_BENCHMARKS=ON -Drmm_ROOT=/rmm/build -Dcudf_ROOT=/cudf/cpp/build
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving ops-codeowner
file changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a final pass of (self-)review and all looks good from my side.
@gpucibot merge |
Description
This PR adds GitHub Actions workflows to
cuspatial
.Wait until after the 22.12 release is complete (and potentially until other repos are ready to migrate to GHA) to merge.
Task list
Coverage required for this PR:
Possibly in scope for this PR:
Future work:
trap
function)rapids-dependency-file-generator
pre-commit hookChecklist