[GRASS-dev] Travis CI
Rainer M Krug
Rainer at krugs.de
Tue Jul 28 01:11:04 PDT 2015
Ivan Mincik <ivan.mincik at gmail.com> writes:
> On 23.07.2015 10:42, Rainer M Krug wrote:
>> Ivan Minčík <ivan.mincik at 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 at gmail.com GPG: 0x79529A1E
> http://imincik.github.io/0x79529A1E.key
> ivan.mincik at gista.sk GPG: 0xD714B02C
> http://imincik.github.io/0xD714B02C.key
>
> _______________________________________________
> grass-dev mailing list
> grass-dev at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 480 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20150728/4f36172b/attachment.pgp>
More information about the grass-dev
mailing list