Ivan Mincik <ivan.mincik@gmail.com> writes:
On 23.07.2015 10:42, Rainer M Krug wrote:
Ivan Minčík <ivan.mincik@gmail.com> writes:
Hi all, we have just integrated Travis Continuous Integration
system [1] to the GRASS source code. Every commit is now build in
Travis [2] using gcc and clang. In case the build fails, error
message should go to GRASS-dev list.
This looks very nice - great. But I see it only =compiles under
Linux.
I have a .travis.yml [1] and a homebrew formula [2] to install 7.1
from head under OSX which is also running the tests (although the
test are not running at the moment - I have to investigate why).
I would suggest to merge the check for Mac into your .travis.yml so
that Mac builds are also checked automatically.
Looks like a good idea, but I have no experience with Mac development.
I am using homebrew, a package manager for OSX. This simplifies the
compilation significantly as it takes care of all dependencies. So the
installation script (called recipe) is at [1] and adapted from the 7.0
of osgeo4mac [2].
The travis script uses my recipe from [1] and installs GRASS 7.1 from
HEAD. I'll walk you quickly through the .travis.yml at [3]:
--8<---------------cut here---------------start------------->8---
## to be used for mac (found it somewhere)
## homebrew is installed by default
language: objective-c
## before install, update homebrew
before_install:
- brew update
## during installation, add the repositories necessary so that when
## installing GRASS 71, all required recipes can be found
install:
- brew tap rkrug/experimental
- brew tap rkrug/head-only
- brew tap rkrug/dev-only
- brew tap homebrew/science
- brew update
## Two parallel tests, one for grass-71, the other for the spearfish data
env:
- RECIPE=nc_spm_08_grass7 INSTALLOPTIONS=""
- RECIPE=grass-71 INSTALLOPTIONS="--HEAD"
script:
## some tests to test the recipe
- brew audit -v $RECIPE
## this now actually installs grass-71 in the one session, and spearfish
## in the other
- brew install $INSTALLOPTIONS $RECIPE
## the test does not work at the moment in the homebrew formula - I will
## check why next week
- brew test -v $RECIPE
## just uninstall grass again to see if this works
- brew uninstall $RECIPE
--8<---------------cut here---------------end--------------->8---
So a minimal installation would look as follow (untested!):
--8<---------------cut here---------------start------------->8---
language: objective-c
before_install:
- brew update
install:
- brew tap rkrug/experimental
- brew tap rkrug/head-only
- brew tap rkrug/dev-only
- brew tap homebrew/science
- brew update
env:
- RECIPE=grass-71 INSTALLOPTIONS="--HEAD"
script:
- brew audit -v $RECIPE
- brew install $INSTALLOPTIONS $RECIPE
## - brew test -v $RECIPE
- brew uninstall $RECIPE
--8<---------------cut here---------------end--------------->8---
And this is it actually. I have seen that it is possible to use one
travis to do tests for different platforms [4], and one could add this
for the OS X platform, but I have no idea how (complete newbie to travis).
I won't have much time during the few next weeks, but I can follow this up
definitely end of August.
Cheers,
Rainer
--
Ivan Minčík
ivan.mincik@gmail.com GPG: 0x79529A1E
http://imincik.github.io/0x79529A1E.key
ivan.mincik@gista.sk GPG: 0xD714B02C
http://imincik.github.io/0xD714B02C.key
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev
Footnotes:
[1] https://github.com/rkrug/homebrew-head-only/blob/master/grass-71.rb
[2] https://github.com/OSGeo/homebrew-osgeo4mac
[3] https://github.com/rkrug/homebrew-experimental/blob/master/.travis.yml
[4] http://docs.travis-ci.com/user/multi-os/
--
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982