You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
8 years ago | |
---|---|---|
.. | ||
Exiv2-trunk | 10 years ago | |
ReadMe.txt | 9 years ago | |
buildserver.library | 9 years ago | |
categorize.py | 8 years ago | |
dailyBuild.sh | 8 years ago | |
dailyCMake.sh | 8 years ago | |
dailyCMakeAll.sh | 9 years ago | |
dailyReadMe.txt | 8 years ago | |
dailyTest.sh | 8 years ago | |
dailyTestAll.sh | 8 years ago | |
jenkins_build.bat | 9 years ago | |
jenkins_build.sh | 9 years ago |
ReadMe.txt
contrib/buildserver/ReadMe.txt ------------------------------ 737 rmills@rmillsmm:~/gnu/exiv2/trunk/contrib/buildserver $ dir User Documentation and Scripts -rw-r--r--@ 1 rmills staff 63B 15 Dec 22:26 ReadMe.txt <---- This file -rwxr-xr-x@ 1 rmills staff 440B 15 Dec 23:07 dailyBuild.sh* <---- called by Jenkins to build and test every day -rwxr-xr-x@ 1 rmills staff 440B 15 Dec 23:07 dailyCMakeAll.sh* <---- run dailyCMake.sh on all platforms -rwxr-xr-x@ 1 rmills staff 424B 14 Dec 23:12 dailyTestAll.sh* <---- run dailyTest.sh on all platform -rwxr-xr-x@ 1 rmills staff 5.8K 14 Dec 21:55 dailyCMake.sh* <---- Builds exiv2 (mostly using cmake) for one platform -rwxr-xr-x@ 1 rmills staff 3.6K 15 Dec 05:49 dailyTest.sh* <---- Called by Jenkins to sync and build all platforms -rw-r--r--@ 1 rmills staff 655B 19 Dec 21:06 functions.so <---- library for the scripts Documentation and Scripts used by Jenkins -rwxr-xr-x+ 1 rmills staff 11K 15 Dec 22:17 jenkins_build.sh* <---- Primary build script (called by Jenkins) -rw-r--r--+ 1 rmills staff 6.3K 15 Dec 22:17 jenkins_build.bat <---- Windows build script (called by jenkins_build.sh) -rw-r--r--@ 1 rmills staff 4.0K 14 Dec 18:31 dailyReadMe.txt <---- Template for bundle ReadMe.txt generated by dailyCMake.sh Detecting if svn has updated a branch ------------------------------------- a=$(svn info . | grep ^Revision | cut -d: -f 2) b=$(svn update . | grep ^At | cut '-d ' -f 3|cut -d. -f 1) if [ $a -eq $b ]; then echo 'no build needed svn = ' $a else echo 'updated from svn:' $a 'to svn:' $b fi Buildserver Configuration ------------------------- The buildserver jobs configurations are located here: 523 rmills@rmillsmbp:/mmHD/Users/Shared/Jenkins/Home/jobs $ dir drwxr-xr-x 1 rmills staff 296B 16 Dec 10:22 Exiv2-trunk/ drwxr-xr-x 1 rmills staff 296B 16 Dec 10:22 test-cmake-daily/ drwxr-xr-x 1 rmills staff 264B 16 Dec 02:47 trunk-cmake-daily/ drwxrwxrwx 1 rmills staff 296B 13 Dec 23:07 Exiv2-videow-refactoring/ drwxr-xr-x 1 rmills staff 296B 12 May 2015 Exiv2-jenkins/ drwxr-xr-x 1 rmills staff 330B 2 May 2015 Exiv2-video-write/ 540 rmills@rmillsmbp:/mmHD/Users/Shared/Jenkins/Home/jobs/Exiv2-trunk $ dir -rw-r--r-- 1 rmills staff 8.1K 16 Dec 10:22 config.xml <---- Build magic drwxr-xr-x 1 rmills staff 264B 29 Dec 2014 configurations/ <---- History of config/build drwxr-xr-x 1 rmills staff 1.2K 15 Dec 22:38 builds/ <---- Logs -rw-r--r-- 1 rmills staff 78B 16 Dec 10:26 scm-polling.log <---- name says it all -rw-r--r-- 1 rmills staff 5B 15 Dec 22:26 nextBuildNumber -rw-r--r-- 1 rmills staff 46B 15 Dec 22:26 svnexternals.txt <---- don't know (nothing important) lrwxr-xr-x 1 rmills staff 22B 15 Dec 22:26 lastStable@ -> builds/lastStableBuild lrwxr-xr-x 1 rmills staff 26B 15 Dec 22:26 lastSuccessful@ -> builds/lastSuccessfulBuild I've added Exiv2-trunk/config.xml to the repos. I'll add something to jenkins_build.sh to keep the copy in the repos up to date. Buildserver Scripts ------------------- Stable scripts (unlikely to change) Job:Exiv2-trunk (and selected branches) Script: ./contrib/buildserver/jenkins_build.sh Trigger: when svn trunk changes Caution: older branches have jenkins_build.sh and jenkins_build.bat in the <exiv2dir> root directory Comment: This script builds when code is submitted. All platforms are automatically triggered by Jenkins and run jenkins_build.sh (Windows runs the 64 bit cygwin SSHD which uses 64 bit bash) Linux, MacOSX, Cygwin execute their builds directly from jenkins_build.sh MSVC builds are executed by jenkins_build.bat which is called via cmd.exe from jenkins_build.sh MinGW builds are executed by jenkins_build.sh calling jenkins_build.sh via MinGW{32|64}bash.exe Work in progress script: Job: trunk-cmake-daily: Trigger: 2am every day Script: cd ~/gnu/exiv2/buildserver contrib/buildserver/dailyBuild.sh Comment: This script builds once a day and ultimately publishes the build. For the moment, it's intended to run on trunk. However the design can be "tweaked" to publish to builds/$JOBNAME/Daily etc I don't want to run this on code submission as the build takes about 1.5 hours to build all 12 Visual Studio builds (2005/2008/2010/2012/2013/2015) 32/64 MinGW/32 is built using the compiler supplied by Qt 5.6 (GCC 4.9.2) MinGW/32 is build with autotools because I have not been able to get cmake to work on MinGW. There are three quite different parts of the script: 1) Use CMake to build on each platform using dailyCMake.sh 2) Validate each platform using dailyTest.sh 3) Categorize the build (create links for Platform/SVN/Date/Latest) At the moment, the "pruning" of the builds is performed by dailyCMake.sh Theme.css --------- body { margin-top : 0px; /* the height of your site banner */ background : lightskyblue; color : black; } #header::after { content : ""; background : url("Exiv2Logo50Background.png");; opacity : 0.05; top : 0; left : 0; bottom : 0; right : 0; position : absolute; z-index : -1; } Notes concerning MinGW ---------------------- ######################################### ## #!/bin/bash ## # mingw32.sh ## # invoke 32bit MinGW bash ## # ## export "PATH=c:\\MinGW\\bin;c:\\MinGW\\msys\\1.0\\bin;C:\\MinGW\\msys\\1.0\\local\\bin;" ## /cygdrive/c/MinGW/msys/1.0/bin/bash.exe $* ## ## # That's all Folks ## ## ######################################### ######################################### ## : mingw32.bat ## : invoke MinGW bash ## : ## setlocal ## set "PATH=c:\MinGW\bin;c:\MinGW\msys\1.0\bin;C:\MinGW\msys\1.0\local\bin;" ## set "PS1=\! ${PWD}> " ## c:\MinGW\msys\1.0\bin\bash.exe %*% ## ## : That's all Folks ######################################### ######################################### ## see http://clanmills.com/exiv2/mingw.shtml about 64bit build ## Install a fresh (32 bit) mingw/msys into c:\MinGW64 ## install the 64 bit compiler from: http://tdm-gcc.tdragon.net ## I used the "on-demand" installer and "Create" put the tools in c:\TDM-GCC-64. The main change is to add the 64 bit compilers to the path BEFORE the 32 bit compilers. ## set PATH=c:\TDM-GCC-64\bin;c:\MinGW\bin;c:\MinGW\msys\1.0\bin;C:\MinGW\msys\1.0\local\bin; ## ## keep MinGW64 for 64 bit builds and /usr/lib has 64bit libraries ## keep MinGW for 32 bit builds and /usr/lib has 32bit libraries ## ## install msys-coreutils, binutils, autotools ## ## For pkg-config see http://clanmills.com/exiv2/mingw.shtml ######################################### ######################################### ## zlib and expat ## mkdir -p ~/gnu/zlib ~/gnu/expat ## get the tar.gz files and tar zxf them ## build (see http://clanmills.com/exiv2/mingw.shtml about zlib) ## DO THIS IN BOTH c:\MinGW and c:\MinGW64 ######################################### ######################################### ## The keith bug ## rm -rf /c/MinGW/lib/libintl.la ######################################### ######################################### ## to build dlfcn-win32 ## git clone https://github.com/dlfcn-win32/dlfcn-win32 ## cd dlfcn-win32 ; ./configure --prefix=/usr --enable-shared ; make ; make install ######################################### Robin Mills robin@clanmills.com 2016-09-24