Skip to content
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

Enable Travis CI v2 #394

Merged
merged 3 commits into from Mar 9, 2016
Merged

Enable Travis CI v2 #394

merged 3 commits into from Mar 9, 2016

Conversation

b4n
Copy link
Member

@b4n b4n commented Mar 7, 2016

Would replace #172, which see also.

This is a new shot at enabling Travis CI on Geany-Plugins. This time, it uses the new-style infrastructure which enables caching and is quite faster to start up.

  • Pros:
    • Faster to start up
    • Has cache support
      • We can build Geany and cache the result, meaning we can rebuild it only when it has changed. This makes me think its better than using nightly _.deb_s, as we have the real latest version in all cases, and zero OS package compatibility issue.
      • ccache support, meaning faster rebuilds
  • Cons:
    • No sudo, which means:
      • We need their approval for new packages. We currently miss:

        this can however probably be addressed by using they approval procedure for those packages. If we chose this version, I'll submit the requests there.

      • No 3rd party repositories (e.g. we have to build Geany there too). This should not be a real problem with the caching, in my tests I saw it wasting about 7s when the cache is available, and something like 2 minutes without cache.

IMO, the pros clearly beat the cons -- unless we really can't get the needed packages, but I'm confident we can.


Unrelated to whether we use the new infrastructure or the old one, we run on Ubuntu 12.04. This is good in the sense we test an old-ish system; but it's bad as in it doesn't have libpython-dev (for GeanyPy) nor libgit2-dev >= 0.21 (for GitChangeBar).

We could try and use their beta Ubuntu 14.04 builders, which allows sudo, and has cache. Sounds nice, but:

  • It's quite a bit slower than their 12.04 "new" infrastructure (build takes minutes to start, not seconds: not sure about speed after startup)
  • Ubuntu 14.04's libgit2-dev is too old (0.19) for GitChangeBar, so we "only" gain GeanyPy
  • Newer system, while good, also means less backward compatibility checks.

I didn't pursue it for the moment because of these which make me think we should at least wait for their setup to get faster seeing the limited benefits.


Setting up this, I found 4 blocker issues, including 3 actual bugs:


Enough chatter, whatcha guys thinkin'?

@b4n b4n added the enhancement label Mar 7, 2016
@b4n
Copy link
Member Author

b4n commented Mar 7, 2016

BTW, actual build links:

@codebrainz
Copy link
Member

I don't have much preference other than it works and shows the status on PR within some time.

Maybe the old Python package was called python-dev?

@b4n b4n force-pushed the travis-new-infrastructure branch from 5644cc8 to 85af22f Compare March 7, 2016 20:50
@b4n
Copy link
Member Author

b4n commented Mar 7, 2016

@codebrainz Nice! that seem to work indeed. It won't work here still because it also requires python-gtk2-dev that isn't allowed (yet), but it was shown working in a sudo-enabled test, so that will work if the package gets approved.

@b4n b4n changed the title travis: Add a Travis CI settings file using its new infrastructure Enable Travis CI v2 Mar 7, 2016
@b4n
Copy link
Member Author

b4n commented Mar 7, 2016

#395 is more than likely to also affect this version of the TravisCI setup.

@b4n
Copy link
Member Author

b4n commented Mar 8, 2016

Added a commit building and caching libgit2 0.21.5 as it's just not available in Ubuntu 12.04 or even 14.04. It's small, it builds quickly (less than 10s apparently well, I don't know, might have included ccache speedup), and it'll be cached basically forever (until dependency bump or cache expiration, if such a thing exists) once built.
With this, GitChangeBar builds fine.

mkdir _build &&
cd _build &&
../configure &&
make -j2 &&
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really want to build with j2? On Travis I don't see much we are winning but error output might be harder to read.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Travis container-based build machines advertize 2 cores in the docs, and legacy VM ones 1.5. So actually for speed we could even go to 3 parallel jobs (or more) to account for time wasted in non-CPU-bound operations (file reads, etc.).

error output might be harder to read.

How so? Any sane Make implementation has output synchronization, and GNU Make's default is to group target output together, so I don't see the issue? But even if target-grouping is not enough in your opinion, we could choose recursive grouping (--output-sync=recursive).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I just dropped -j out of my mind years ago as it didn't work. If its working by now, I'm fine ;)

b4n added 3 commits March 9, 2016 20:02
The Ubuntu 12.04 Python development package is named python-dev, not
libpython-dev, and we also need python-gtk2-dev.
@b4n b4n force-pushed the travis-new-infrastructure branch from 58253ca to d103d72 Compare March 9, 2016 19:26
@b4n
Copy link
Member Author

b4n commented Mar 9, 2016

Rebased on master to get the required fixes, and I took the opportunity to squash the 2 GeanyPy-related commits, and fixing a comment.

PS: travis is running this PR ;)

frlan added a commit that referenced this pull request Mar 9, 2016
@frlan frlan merged commit ce9708d into geany:master Mar 9, 2016
@b4n b4n mentioned this pull request Mar 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants