-
Notifications
You must be signed in to change notification settings - Fork 998
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
GitHub workflow with sanitizers #6746
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #6746 +/- ##
=======================================
Coverage 98.62% 98.62%
=======================================
Files 79 79
Lines 14642 14642
=======================================
Hits 14440 14440
Misses 202 202 ☔ View full report in Codecov by Sentry. |
Did you have a look at the I'm not sure why the most recent run was cancelled, I'll close & re-open to re-trigger: https://github.com/Rdatatable/data.table/actions/runs/12886173136 At a higher level, if performance is bad (say >=20% slower than any current PR-level action), I would recommend only running such an action on To date, |
Thank you for pointing me towards the devcontainer! Unlike I don't think it we'll get it significantly faster than 4 minutes (or anywhere close to 40 seconds), especially if optional dependencies are introduced, so let's leave it on |
Also: - Do not check pull requests - Try to cache installed dependencies
Using Installing the dependencies from source (including those from I suppose we could try to abuse the cache system by making an individual cache key for every needed package (plus its version plus the version of R-devel), but it's definitely not intended to be used this way. Is GitLab CI better for tasks like these, with slowly changing 100-megabyte caches? |
GLCI is probably the right way to go (cc @jangorecki & @ben-schwen). Just want to note that because of our minimal approach to dependencies, the cache approach should be OK in general -- I guess the most important package to check with the sanitizer will be bit64, which is relatively stable / won't change noticeably more often than R (I am the maintainer & certainly don't plan a lot of activity 😉). The other packages are probably not important for testing with the sanitizer per se, so if they are slightly behind CRAN it's unlikely to cause issues. |
In GLCI we also cache the pkgs and install them but it seems that in this GHA we also install all dependencies for these pkgs?
In comparison in GLCI we only install dependencies from DESCRIPTION and
|
These are the strong dependencies of the packages from
(Including
Not installing the packages from |
oh, I definitely would not concern myself with getting other.Rraw working in the sanitizer GHA :) |
There are multiple ways to write the workflow in order to detect the issues like #6733.
One is to be quite close to the reference R-hub workflow description, which is in the
HEAD
of the current pull request. Here's how it fails on a recentmaster
.The other is to write a more custom workflow, still reusing the container maintained by Gábor Csárdi and the infrastructure providing binary packages linked with
libc++
for the clang+sanitizers check. It's in the parent of the current pull request or the GHA-sanitizers branch. Here's what the failure looks like.(The supported option is to use
rhub::rhub_setup()
.)Comments from people experienced with GHA are very welcome; this is the third time I'm doing any CI and the first time I'm writing a non-throwaway GitHub workflow.