[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