#1109 and #1041 Simplification of daily cmake build/test/publish/categorize (Work in Progress)

This commit is contained in:
Robin Mills 2015-12-17 18:46:42 +00:00
parent e79c355643
commit 43358013ca
2 changed files with 104 additions and 29 deletions

View File

@ -13,12 +13,23 @@ Documentation and Scripts used by Jenkins
-rwxr-xr-x@ 1 rmills staff 5.8K 14 Dec 21:55 cmake_daily.sh* <---- Builds exiv2 using cmake on all platforms
-rwxr-xr-x@ 1 rmills staff 3.6K 15 Dec 05:49 test_daily.sh* <---- Called by Jenkins to sync and build all platforms
-rw-r--r--@ 1 rmills staff 4.0K 14 Dec 18:31 dailyReadMe.txt <---- Template for the bundle ReadMe.txt generated by cmake_daily.sh
-rwxr-xr-x@ 1 rmills staff 2.3K 16 Dec 19:41 spread* <---- Used to update the 'Categorized' builds
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 configuration scripts are located here:
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/
@ -29,44 +40,89 @@ 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 <-- the 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 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
-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)
541 rmills@rmillsmbp:/mmHD/Users/Shared/Jenkins/Home/jobs/Exiv2-trunk $
I've added Exiv2-trunk/config.xml to the repos. I'll add something to jenkins_build.sh to keep it up to date.
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 and unlikely to change
Exiv2-trunk (and selected branches):
Runs: when svn trunk changes
./contrib/buildserver/jenkins_build.sh
Stable scripts (unlikely to change)
Job:Exiv2-trunk (and selected branches)
Script:
./contrib/buildserver/jenkins_build.sh
Caution: older branches have jenkins_build.sh and jenkins_build.bat
in the root of the repos
Trigger: when svn trunk changes
Volatile Scripts - still work in progress
trunk-cmake-daily:
Runs: 2am every day
ssh rmills@rmillsmm 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-kubuntu 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-w7 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-w7 'export PLATFORM=msvc;cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
Caution:
older branches have jenkins_build.sh and jenkins_build.bat
in the <exiv2dir> root directory
Work in progress scripts:
Job: trunk-cmake-daily:
Trigger: 2am every day
Script:
cd ~/gnu/exiv2/buildserver
a=$(/usr/local/bin/svn info . | grep ^Revision | cut '-d:' -f 2 | tr -d ' ')
b=$(/usr/local/bin/svn update . | grep ^At | cut '-d ' -f 3 | cut -d. -f 1 | tr -d ' ')
if [ "$a" == "$b" ]; then
echo ==================================
echo 'no build needed svn = ' $a
echo ==================================
else
echo ==================================
echo 'updated from svn:' $a 'to svn:' $b
echo ==================================
ssh rmills@rmillsmm 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-kubuntu 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-w7 'cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
ssh rmills@rmillsmm-w7 'export PLATFORM=msvc;cd ~/gnu/exiv2/buildserver ; /usr/local/bin/svn update . ; contrib/buildserver/cmake_daily.sh'
##
# test the delivery
date=$(date '+%Y-%m-%d+%H-%M-%S')
svn=$(/usr/local/bin/svn info . | grep ^Revision | cut -d: -f 2 | tr -d ' ')
(
ssh rmills@rmillsmm 'PLATFORM=macosx ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-kubuntu 'PLATFORM=linux ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-w7 'PLATFORM=cygwin ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-w7 'PLATFORM=msvc ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
) | tee "/mmHD/Users/Shared/Jenkins/Home/userContent/builds/Daily/test-svn-${svn}-date-${date}.txt"
##
# categorize the builds
ssh rmills@rmillsmm '~/gnu/exiv2/buildserver/contrib/buildserver/categorize /mmHD/Users/Shared/Jenkins/Home/userContent/builds'
fi
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;
}
test-cmake-daily:
Runs: 5am every day
ssh rmills@rmillsmm 'PLATFORM=macosx ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-kubuntu 'PLATFORM=linux ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-w7 'PLATFORM=cygwin ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
ssh rmills@rmillsmm-w7 'PLATFORM=msvc ~/gnu/exiv2/buildserver/contrib/buildserver/test_daily.sh'
Robin Mills
robin@clanmills.com
2015-12-16
2015-12-17

View File

@ -68,6 +68,7 @@ for platform in ${platforms[*]}; do
done
echo ---------- SVN -----------
latest=0
for svn in ${svns[*]}; do
dir="$C/SVN/$svn"
mkdir -p "$dir"
@ -81,8 +82,25 @@ for svn in ${svns[*]}; do
fi
fi
done
if [ $svn -gt $latest ]; then latest="$svn"; fi
done
echo ---------- Latest -----------
if [ "$latest" != "0" ]; then
dir="$C/Latest"
mkdir -p "$dir"
for file in ${files[*]}; do
file=$(basename $file)
SVN=$(echo $file | cut -d- -f 3)
if [ "$latest" == "$SVN" ]; then
if [ -e Daily/$file ]; then ln -s $PWD/Daily/$file $dir/$file
elif [ -e Weekly/$file ]; then ln -s $PWD/Weekly/$file $dir/$file
elif [ -e Monthly/$file ]; then ln -s $PWD/Monthly/$file $dir/$file
fi
fi
done
fi
echo ---------- Date -----------
for date in ${dates[*]}; do
dir="$C/Date/$date"
@ -99,5 +117,6 @@ for date in ${dates[*]}; do
done
done
# That's all Folks!
##