-
Notifications
You must be signed in to change notification settings - Fork 610
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
travis: Add a Travis CI settings file #360
Conversation
BTW, I didn't enable using Clang because I believe GCC is solid enough to report our errors and that having a set or fatal errors is harder if we have several compilers, but if you feel like we should have it should mostly just work (and create 2 more jobs). |
[EDIT] Forgot to say great idea. Don't think the open source part has strings attached. We can play with clang after it works for gcc, useful for BSD and OSX users. But far more important is the passing button for the github front page http://docs.travis-ci.com/user/status-images/ :) BTW why isn't it using the full b4n-pedantic settings? |
I honestly doubt anything we would use has any risk of breaking at the compiler level, but I don't mind much, it just wastes (or not) some CPU time on Travis CI -- unless our flags break it, so we need to have different flags depending on the compiler, which while doable is a bit more annoying.
Because my settings do output a few warnings (about non-literal format strings and non-constant string literals mostly -- but worse with GTK2 that has some crap in its headers), and that any non-fatal warning is useless anyway. |
Ok, makes sense. |
After the yesterday's sad sed behaviour I thought it might be interesting to enable osx travis builds so the slightly strange cmdline tools used by osx are testable by others as well. In addition we'd get clang build as a bonus. However, the osx builds have to be enabled by an email request to travis: http://docs.travis-ci.com/user/multi-os/#Manual-intervention-required |
👍 |
Needs mingw support. I think the package is called |
If we all are happy with Travis, I'll try to do that, should be easy enough |
I'm happy with it. The only other one I've used is Jenkins, which seems more powerful but requires own server and has a pretty terrible user-interface (at least the version I used before). |
(just rebased on current master, no changes yet) |
BTW, we should also add this to geany-plugins |
👍 |
@b4n do you mean geany/geany-plugins#172? :) |
Oh, forgot about that :) |
Okay, I'm trying to get cross build to work but I get strange errors when I try installing the mingw packages, any idea? https://travis-ci.org/b4n/geany/jobs/69443746 |
okay, maybe it was a conflict with mingw32 packages. Anyway, now it seems to be building at least, we'll see how it goes |
wowow! both mingw builds passed! So, it works. I'm not very fond of the bundle fetching, as it hits gnome.org on every builds… got a better idea? |
I see no harm in this PR at all. @b4n maybe you should make a "geany" account on Travis CI? |
@codebrainz good point, geany account opened there |
We unfortunately can't run tests as they require running the just build (foreign) executable, but at least it tries and build the Windows code paths.
I just squashed all mingw commits together. No changes, except removing 1 outdated comment. |
Yeah, awesome job!
What exactly are you bothering about? |
I'm probably just being crazy nice, but the load on their part -- e.g. I wonder how nice it is for us to hit their servers that often. But I guess it really doesn't matter for anyone (and it might be worse for everyone if we hosted them ourselves, if we're limited in bandwidth as we probably got less money there than they do). |
BTW, also for GTK3, their bundles are old, and I don't know if we can download msys2 ones from the net easily? |
BTW, apart that I think it can be merged as is, as it works and doesn't look too crazy |
Ok got it. I don't think downloading the bundles from our server would result in any problems like bandwidth or load. But it still keeps the load on the Travis CI servers. |
Good. But do you think it's useful? I'm probably just being overly worried on loading others (which probably are actually here for that).
This I don't think it's an issue -- and I care a lot less, too :)
Well, yes and no, see http://docs.travis-ci.com/user/caching/ |
hehe, look at the status of this PR ;) |
Hold that, they seem to have very recently changed some things, that maybe be possible now. See http://docs.travis-ci.com/user/migrating-from-legacy/ |
Well, no, it's not yet possible for us: https://travis-ci.org/b4n/geany/jobs/70455778#L77 Edit: BTW, I made a typo in the GTK packages, those are OK. We miss |
So again, unless we want to change the GTK bundle URLs for MinGW builds, I think this can be merged. We can update the Travis build method later too, it's not written in stone. |
If anyone else was curious. Too expensive. PR looks fine to me. |
Ok, I guess Can we affect the build frequency in any way? Something like "build on every commit/push but only if last build is older than X minutes/hours"? Just thinking loudly: I'm going to merge this now. And later on, we can probably solve the caching/load problem. |
travis: Add a Travis CI settings file
Indeed. But that's only the new container-based infrastructure (which has cache, yeah…), without we can install anything we want.
Not that I know of, AFAIK it will build every push and this can't be changed. But I might be wrong.
Travis seem to have some kind of way to have secure data (not sure how, probably based on user tokens), so it might be possible. |
I was actually thinking of some kind of delay.
Sounds promising. I'll have a look at some point. |
Enrico, stop worrying, we have so few PRs and dependencies that Travis is unlikely to notice, think of something like Julia with a huge mass of deps a massive compile and build and test and a dozen or so PRs per day. |
Although I'd rather have a continuous integration setup on our own (like next to git.geany.org), I'm afraid we don't really have time to set it up nor probably resources to run it on almost everything.
So, maybe Travis CI is not so bad -- though although it doesn't say so anywhere, I don't know if it comes with strings attached. Anyway, here is a .travis.yml that seems to work great. If we agree on it, we can merge and then enable the repository in Travis CI.