[mapserver-dev] Appveyor Windows continuous integration

Even Rouault even.rouault at spatialys.com
Thu Aug 6 05:33:34 PDT 2015


Hi,

I've experimented a Appveyor Windows continuous integration setup in my fork :
https://github.com/rouault/mapserver/blob/appveyor/appveyor.yml

And finally managed to get a successful build:
https://ci.appveyor.com/project/rouault/mapserver/build/1.0.33

It does 32 and 64 bit builds, with Visual Studio 12 2013 (other versions could 
be added to the matrix). 

The current options are :
-- * Summary of configured options for this build
--  * Mandatory components
--   * png: C:\projects\mapserver\sdk\release-1800-x64\lib\libpng.lib
--   * jpeg: C:/projects/mapserver/sdk/release-1800-x64/lib/libjpeg.lib
--   * freetype: C:/projects/mapserver/sdk/release-1800-
x64/lib/freetype2411.lib
--  * Optional components
--   * GDAL: C:/projects/mapserver/sdk/release-1800-x64/lib/gdal_i.lib
--   * OGR: C:/projects/mapserver/sdk/release-1800-x64/lib/gdal_i.lib
--   * GIF: C:/projects/mapserver/sdk/release-1800-x64/lib/giflib.lib
--   * MYSQL: disabled
--   * FRIBIDI: C:/projects/mapserver/sdk/release-1800-x64/lib/fribidi.lib
--   * HARFBUZZ: C:/projects/mapserver/sdk/release-1800-x64/lib/harfbuzz.lib
--   * GIF: C:/projects/mapserver/sdk/release-1800-x64/lib/giflib.lib
--   * CAIRO: C:/projects/mapserver/sdk/release-1800-x64/lib/cairo.lib
--   * SVGCAIRO: C:/projects/mapserver/sdk/release-1800-x64/lib/libsvg-
cairo.lib
--   * RSVG: disabled
--   * CURL: C:/projects/mapserver/sdk/release-1800-x64/lib/libcurl_imp.lib
--   * PROJ: C:/projects/mapserver/sdk/release-1800-x64/lib/proj_i.lib
--   * PIXMAN: disabled
--   * LIBXML2: C:/projects/mapserver/sdk/release-1800-x64/lib/libxml2.lib
--   * POSTGIS: C:/projects/mapserver/sdk/release-1800-x64/lib/libpqdll.lib
--   * GEOS: C:/projects/mapserver/sdk/release-1800-x64/lib/geos_c.lib
--   * FastCGI: C:/projects/mapserver/sdk/release-1800-x64/lib/libfcgi.lib
--   * Oracle Spatial: disabled
--   * Exempi XMP: disabled
--  * Optional features
--   * WMS SERVER: ENABLED
--   * WFS SERVER: ENABLED
--   * WCS SERVER: ENABLED
--   * SOS SERVER: ENABLED
--   * WMS CLIENT: ENABLED
--   * WFS CLIENT: ENABLED
--   * ICONV: ENABLED
--   * Thread-safety support: ENABLED
--   * KML output: ENABLED
--   * Z+M point coordinate support: ENABLED
--   * XML Mapfile support: disabled
--  * Mapscripts
--   * Python: ENABLED
--   * PHP: disabled
--   * PERL: disabled
--   * RUBY: disabled
--   * JAVA: disabled
--   * C#: disabled
--   * V8 Javascript: disabled
--   * Apache Module (Experimental): disabled
-- 

So pretty much all external libs + python. No tests are run.

This relies heavily on Tamas' SDKs to provide all the required dependencies. 
But I had some hard time figuring out a few cmake options. I couldn't find any 
online page with a cmake Windows setup. The weirdest oddity I had to fight is 
that I had to do "copy libpng.lib libpng.lib.lib" to be able to link. iconv 
was a bit particular too since you have to specify ICONV_DLL unlike other 
libraries. And for curl linking I add to specify -
DMS_EXTERNAL_LIBS=wsock32.lib

Is there interest in migrating this to master ? My experience is that Appveyor 
response time is rather dependant on the hour of the day. It can fire jobs a 
few seconds after push at morning/early afternoon European time, but I found 
that later in the day when North Americans wake up, builds can be queued for 
minutes or hours. At least, this seems true for free accounts like mine.

The appveyor account used is mine currently. I could update it to build from 
the official mapserver github repo instead of my fork, and I believe that should 
work, even for pull requests.
Perhaps it would be best to have a appveyor "mapserver" account, but there's 
no easy way with Appveyor to create a Appveyor account linked to a github 
organization account like mapserver (contrary to Travis I believe). I found 
that one can create manually a appveyor mapserver account, with independant 
login&password identification, and then add github accounts of individuals as 
administrators. I can try that if that's OK.

Best regards,

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the mapserver-dev mailing list