-
-
Notifications
You must be signed in to change notification settings - Fork 657
Move tests from Travis to SemaphoreCI #7617
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
Conversation
|
Thanks for your pull request, @wilzbach! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. |
|
BTW it's really fast: https://travis-ci.org/dlang/dmd/builds/325836886 with this build: https://semaphoreci.com/cybershadow/dmd/branches/pull-request-7617/builds/1 |
a3edfbf to
db71432
Compare
|
@wilzbach - Have a badge: Or a shield. :-P |
|
Hmm, looks like Jenkins is building a version of Ocean that doesn't have the contract fix. |
My idea was to This looks a bit boring: |
Yeah I observed this on a couple of other PRs today too |
Hmm that Jenkins does checkout the version with the fix (see dlang/ci#108): |
|
All I can see is that the change was pushed to the 3.5 branch only |
|
As far as I can tell then, all PRs should fail unless ocean 4.x is fixed or we temporarily just go ahead and merge anyway. |
Let's see whether dlang/ci#115 works |
Well, I guess the main reason for being faster is that they're still new and thus burn more money to grow their user-base. |
We currently display the following three CodeCov checks:
|
They were founded only one year after Travis. So that's no excuse. For sure I think they've not really marketed themselves well unlike Travis. I picked up semaphore for gdc a few years ago as it was the only platform that could build and run all tests in 25-30 minutes flat. They seem to have cut that down to 15-20 minutes since then. |
|
Right, we can get the total coverage by clicking details on coverage/patch, so we should only keep |
Already on it: #7711
To be fair, most of these checks have 9/10 because the Travis - even reduced to a sole OSX job - still takes ages to run and is the only CI which isn't enforced yet. I would be happy to get rid of this Travis. |
It's nice that they run on dedicated servers, and maybe that works out better business-wise than using expensive on-demand cloud instances. They still have a very limited free-tier, like everyone else, and that likely won't suffice at peak times. So switching only mitigates the problem so much. For the short term we could prolly spread our repos among CIs, but in the long-run I'd rather want to move things back into one or two CI systems per repo. |
|
To be clear, this might a good move, so thanks for taking the initiative @wilzbach. It's just that it also causes churn and doesn't seem like a long-term solution, hence my reservation. |
Understood. Of course, having dedicated machines on which we run the bootstrap builds would be a lot better, but the reason for the switch to Semaphore was that the performance and failures of Travis job. became unbearable in the last weeks.
The only failing PR build is a true positive - it really has an errors: And do to its fast run time - a contributor now sometimes gets his first feedback from SemaphoreCI.
It was never intended to be one. |
|
For reference, here's Travis before #7653: |
@MartinNowak one problem with the current setup of the auto-tester is that it's only one person that is in control of it. That person becomes a bottleneck for changes, it's also a problem if the person disappears. |
That's understood and we could use ci.dlang.org to step-in in case of urgency, but as we knew when we started, Jenkins is a PITA and has a horrible footprint, so that would be an unwelcome move and definitely incur a lot more maintenance overhead than the auto-tester.
I doubt that this is such a big problem, we have dedicated targets in the Makefiles that allow for smaller changes, and for bigger environment/dependency updates it's actually good to have a gate-keeper. |
It's not so much about which software is running more about who can make changes.
We already have gatekeepers for all projects. All I'm saying is that every time I suggested to change something, like upgrading a compiler, I got the answer that it's too difficult and to much work because it's only one person in control. Not that we need to stay compatible with the existing compiler. |







A start to move tests from Travis to Semaphore.
It's amazingly fast:
Notes;
Semaphore is for now configured as follows:
(
if [ -f semaphoreci.sh ...is done s.t. other PRs don't fail for now)