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

Continuous integration #37

Closed
zbeekman opened this issue Dec 3, 2015 · 12 comments
Closed

Continuous integration #37

zbeekman opened this issue Dec 3, 2015 · 12 comments
Assignees

Comments

@zbeekman
Copy link
Collaborator

zbeekman commented Dec 3, 2015

Hi Guys,
I'm going to see if I can work up a PR to get some Travis-CI based continuous integration working...

My thoughts are it can help spot bugs if someone introduces one in a PR or tries to check one in, and it could help with packaging release assets, like a self-extracting install script as in #26

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 4, 2015

Furthermore, adding a badge to the README.md gives users that warm fuzzy feeling of confidence when they see the build is passing, and helps keep all the contributors in sync and on top of any potential problems introduce.

It can also confirm that OCA works with a number of different MPI implementations and possibly that it works on OS X as well as Ubuntu. (Need to investigate OS X further...)

@rouson I'm happy to work on this. If you are going to add me to the @sourceryinstitute organization, as I described how to do in #23, this will make it easier for me to setup Travis-CI on your behalf. Otherwise, I'll have to include some directions to help you configure it and get started.

EDIT: this is also a great first step for reporting and tracking test coverage with a tool like http://codecov.io

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 4, 2015

A few quick questions:

@rouson How long does it usually take you to build all of the dependencies, assuming none are available?

@afanfa have you had any success installing MPICH or OpenMPI on Ubuntu such that mpicc and mpif90 wrap gcc-5?

It seems like getting an OpenMPI or MPICH installation that wraps gcc-5.2 is less trivial than I though on Ubuntu...

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 4, 2015

some notes for myself:

@sourceryinstitute
Copy link
Collaborator

Oh, Travis-CI, where have you been all my life?

That is all -- wish I had time to write more.

:D

Sent from my iPhone

On Dec 4, 2015, at 8:48 AM, Izaak Beekman [email protected] wrote:

some notes for myself:

GCC 5 on OSX Travis-CI image travis-ci/travis-ci#4587
CMake 3.x is available from ppa:george-edison55/precise-backports which is a white listed source for Travis-CI.org (and hence is compatible with container based builds
Homebrew can be used to install dependencies... this will be great for testing
Fortran container based build example: https://github.com/jacobwilliams/json-fortran/blob/master/.travis.yml
OS X build example with multiple OS versions: https://github.com/Homebrew/homebrew/blob/master/.travis.yml
Testing on multiple OSes: https://docs.travis-ci.com/user/multi-os/

Reply to this email directly or view it on GitHub.

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 4, 2015

its a bit poorly documented, but it's amazing... sorry to keep pestering you with issues/comments etc... but if you're still interested in adding me to the sourceryinstitute organization, that help me streamline the setup...

@sourceryinstitute
Copy link
Collaborator

On Dec 4, 2015, at 9:13 AM, Izaak Beekman [email protected] wrote:

its a bit poorly documented, but it's amazing... sorry to keep pestering you with issues/comments etc... but if you're still interested in adding me to the sourceryinstitute organization, that help me streamline the setup...

Hi Zaak,

I’m not sure if you saw my mention of is earlier, but I’m glad to do it. I just don’t see how. We should just do a screen share the next time we talk or if you have a GitHub project that you own and you can send detailed instructions, I can do it before we talk. Unfortunately, my time is very nearly completely spoken from now through Tuesday and Wednesday will be pretty high-pressure too. If we talk on Wednesday, the best time would be late in the day — either around 2:30 PM Pacific when I’ll be driving to the Portland airport or an hour or so later when I’ll be at the airport.

D

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 5, 2015

Hi damian, here are the instructions I postet in #23:

Go to https://github.com and ensure that you're viewing as sourceryinstitute by using the drop down menu on the upper left-hand side.

Next try clicking this link, as sourceryinstitute: https://github.com/orgs/sourceryinstitute/people?utf8=✓&query=zbeekman you should get taken to the sourceryinstitute people tab and have the option to click the "invite" button to invite me.

If that fails go back to https://github.com, make sure that you're still viewing as sourceryinstitute. There should be a button on the upper right-hand side that says something like "view organization", click that. Then click the people tab. Then search for zbeekman and press the invite button.

Would later on next week (thursday or Friday) be a better time to talk? I know things get super busy with the holidays.

@sourceryinstitute
Copy link
Collaborator

HI Zaak,

I'm signed in as sourceryinstitute. The link in your second paragraph returns "Page not found." I tried the second approach, but did not se a "view organization" option. Investigating further, I think the problems is that sourceryinstitue is not designated an "organization" in GitHub. I started down the path of establishing such a designation, but a strong warning comes up that the process is irreversible and destructive and that commits from sourceryinstitute will no longer be accepted once the conversion happens. I'm very open to doing the conversion, but it will have to wait a few days. I'm teaching a short course at PNNL tomorrow and Tuesday and then giving a talk at Portland Group on Wednesday. I'm also working on a loaner laptop while my laptop is in for service. The soonest I'll have my laptop back is Thursday. I think it's best to hold off on such a big change until I'm these few critical days. If there is another way for me to grant you the rights you need to commit and/or operate effectively, I'll be glad to do so. In fact, if it's just about committing, then I assume that's possible because it's already the case that I can commit from my "rouson" account and Alessandro can commit from his "afanfa" account. I just don't recall how I set up these commit rights and I have done some searching.

Unfortunately, I'm extremely pressed for time between now and Wednesday afternoon so I might not be able to respond further before then, but I'll try.

The best time for me to speak is Friday before 1 PM Pacific or after 3 PM Pacific. Thursday is a possibility too -- probably best in the 1:30 - 4:00 PM Pacific range on Thursday.

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 6, 2015

ah, I see that is the problem, sourceryinstitute is a user not an organization. You can give me commit rights via each projects settings, but in terms of Travis-CI, codecov.io etc. additional account access rights are required. We can wait until Friday to address all of this. The morning will probably be better for me, I'll find a time on youcanbook.me before1PM pacific

@zbeekman
Copy link
Collaborator Author

zbeekman commented Dec 8, 2015

@rouson let's talk Friday 9 AM Pacific (noon eastern). I just used your online booking website to block off/request the time. We can move it to some other time if Friday morning no longer works for you.

(Also I had made a mistake converting time zones before, and had to cancel a time I booked... sorry for the confusion.)

@rouson
Copy link
Member

rouson commented Dec 9, 2015

That works. Thanks for booking it.

D

Sent from my iPhone

On Dec 8, 2015, at 11:31 AM, Izaak Beekman [email protected] wrote:

@rouson let's talk Friday 9 AM Pacific (noon eastern). I just used your online booking website to block off/request the time. We can move it to some other time if Friday morning no longer works for you.

(Also I had made a mistake converting time zones before, and had to cancel a time I booked... sorry for the confusion.)


Reply to this email directly or view it on GitHub.

@zbeekman
Copy link
Collaborator Author

Here is some documentation on how we could use this to help us package releases, including self extracting install scripts as in #26 : https://docs.travis-ci.com/user/deployment/releases

Here is a link to my latest builds with Travis-CI: https://travis-ci.org/zbeekman/opencoarrays/builds

Here are some notes:

  • The build is failing on the Ubuntu VM due to Test: coarray_navier_stokes fails #42, but otherwise would pass
  • On Ubuntu, caching is used, so that MPICH only needs to be built once. If we need to upgrade MPICH, the cache will probably have to be manually deleted (from the Travis-CI project settings) to force a new build
  • Caching MPICH on saves about 8 minutes 20 seconds of build time.
  • A cached Ubuntu build/test takes about 1:08 to run
  • An OS X build/test (where all dependencies are installed via Homebrew and poured from pre-compiled bottles) takes about 1:45, and passes with flying colors.
  • There is a problem with the current bottled OpenMPI provided with Homebrew
    • The test can run and pass with OpenMPI if one passes --build-from-source to brew install openmpi, although for speed, one should install libevent pkg-config and makedepend from poured bottles manually before trying to install OpenMPI from source.
    • There is no directory caching on the free mac infrastructure, so using OpenMPI requires it to be built every. single. time. (At least until the Homebrew bug is fixed)
    • MPICH times out when building from source, but will work without incident if poured from a bottle.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants