-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
refs #8638 nimble-wide CI: first pass #10247
Conversation
3ffa632
to
a920bef
Compare
5452d4f
to
1a357a3
Compare
a1f8958
to
df17d2d
Compare
Caveat:
|
Moreover, libraries can have custom requirements for testing:
Only the author knows this, and so the CI job to test a specific library should be in charge of that author. I do not see a robust way to do a global CI infrastructure without letting library authors register and submit packages to Nim CI manually. This will also ensure that CI runs for libraries that are actively maintained, and if there is a problem with a library (say the library has to be updated to comply with some Nim changes), there is a registered user to contact |
yup, fixed by
For your other points:
I have a simple answer to that, which again leverages nimble-wide standardization. /cc @dom96
all that Nim's runCI does is run |
df17d2d
to
6a5e7d3
Compare
…le build` for each pkg
* show runtime for each pkg * cleanups
6a5e7d3
to
2c58644
Compare
if b.stats.testOK == 0: | ||
a.failures.add b.pkg | ||
macro domixin(s: static[string]): untyped = parseStmt(s) | ||
for k, v in fieldPairs(b.stats): |
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.
for k, v in fieldPairs(b.stats): | |
for aa, bb in fields(a.stats, b.stats): | |
aa += bb |
# pid useful to kill process, since because of a bug, ^C doesn't work inside exec | ||
|
||
var data: TestResult | ||
let pkgs0 = """ |
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 should be a const
and moved to the top of the file.
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 is a nice idea but I'm rejecting it because I don't think it belongs in Nim's test suite.
This should be a separate effort that gets executed every x
hours/days, not for every push/PR on the Nim repo. Put this in another repo please and maintain it separately. Flag up problems that you're seeing to us. Doing it in this repo will be far too noisy.
@dom96 We need it and if it causes problems wrt timeouts etc we'll move it around, but as a first step we try to run it for every PR. |
I agree with @dom96, on both counts: it should be a separate repo/CI, and it should run once per day (not for every push). |
Well, running it for each PR(at least when it's in "finished" state) it one of the main points: running it once a day doesn't solve this, except if you run it once a day for each PR with new commits(but even then you need to wait before merging small PRs) |
@timotheecour Unless the user is root on CI, I don't see how one can run - for instance - |
I took over here: #10549 Here is how it looks: https://ci.appveyor.com/project/Araq/nim/builds/22121288/job/0ujefy265yelp09c/tests |
TODO: need to figure how to runDONEnimble test
example output
see from https://travis-ci.com/timotheecour/Nim/jobs/169254994
for future PR's
[EDIT] potential concerns to think about down the line
( this makes appveyor timeout, but travis is fine; maybe we can have a when
defined(windows)
block to have a shorter list of pkgs to test on appveyorsee https://ci.appveyor.com/project/Araq/nim/builds/21497722/messages
Build execution time has reached the maximum allowed time for your plan (90 minutes).
it went up to 3/20 packages