[mapserver-dev] Appveyor Windows continuous integration

Lime, Steve D (MNIT) Steve.Lime at state.mn.us
Thu Aug 6 15:00:28 PDT 2015


Hi Even: Thanks for taking this on. Seems useful I since most devs have zero way to test changes in the context of Windows. Making it work with a MapServer-specific account against master sounds like the way to go rather than burdening your account. I'd be happy being the username/password custodian if need be.

Steve

-----Original Message-----
From: mapserver-dev-bounces at lists.osgeo.org [mailto:mapserver-dev-bounces at lists.osgeo.org] On Behalf Of Even Rouault
Sent: Thursday, August 06, 2015 7:34 AM
To: mapserver-dev <mapserver-dev at lists.osgeo.org>
Subject: [mapserver-dev] Appveyor Windows continuous integration

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
_______________________________________________
mapserver-dev mailing list
mapserver-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-dev


More information about the mapserver-dev mailing list