diff options
author | Sven Gothel <[email protected]> | 2010-11-09 03:05:17 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2010-11-09 03:05:17 +0100 |
commit | b3e89bfa55389cae974c94afba6fb4ce118f75df (patch) | |
tree | 063f7d59cee39e3beeec7c17c74d10497d0fa8a5 |
Provide deployment (jnlp) and hudson build aggregation scripts
-rwxr-xr-x | deployment/all-deploy-webstarttest.sh | 57 | ||||
-rwxr-xr-x | deployment/deploy-jar-sign.sh | 36 | ||||
-rwxr-xr-x | deployment/deploy-jars-pack200.sh | 33 | ||||
-rwxr-xr-x | deployment/deploy-jars-repack200.sh | 30 | ||||
-rwxr-xr-x | deployment/deploy-jars-sign.sh | 47 | ||||
-rwxr-xr-x | deployment/deploy-jars-webstarttest.sh | 50 | ||||
-rwxr-xr-x | deployment/deploy-jars_external-webstarttest.sh | 26 | ||||
-rwxr-xr-x | deployment/deploy-jnlp-webstarttest-filter.sh | 25 | ||||
-rwxr-xr-x | deployment/deploy-jnlp-webstarttest.sh | 79 | ||||
-rwxr-xr-x | hudson-builds/archive-jars-latest.sh | 158 | ||||
-rwxr-xr-x | hudson-builds/archive-verify-latest.sh | 99 |
11 files changed, 640 insertions, 0 deletions
diff --git a/deployment/all-deploy-webstarttest.sh b/deployment/all-deploy-webstarttest.sh new file mode 100755 index 0000000..e947c3f --- /dev/null +++ b/deployment/all-deploy-webstarttest.sh @@ -0,0 +1,57 @@ +#! /bin/sh + +if [ ! -e scripts -o ! -e ../make ] ; then + echo start this script from JOGL/jogl/make + exit 1 +fi + +url=$1 +shift + +joglbuilddir=$1 +shift + +wsdir=$1 +shift + +if [ -z "$url" -o -z "$joglbuilddir" -o -z "$wsdir" ] ; then + echo Usage $0 codebase-url jogl-builddir webstartdir + echo Examples + echo sh $0 file:////usr/local/projects/JOGL/webstart ../build-x86_64 ../../webstart + echo sh $0 http://domain.org/jogl/webstart ../build-win32 ../../webstart + exit 1 +fi + +if [ ! -e $joglbuilddir ] ; then + echo $joglbuilddir does not exist + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +sh scripts/deploy-jars-webstarttest.sh $joglbuilddir $wsdir +# +# repack it .. so the signed jars can be pack200'ed +# sh scripts/deploy-jars-repack200.sh $wsdir +# +# sign it +# sh scripts/deploy-jars-sign.sh $wsdir KEY_STORE_FILE STORE_PASSWORD SOME_ARGUMENT +# +# pack200 +# sh scripts/deploy-jars-pack200.sh $wsdir +# +sh scripts/deploy-jnlp-webstarttest.sh $url $joglbuilddir $wsdir +# +# In case you don't sign it .. +# +# sh scripts/deploy-jnlp-webstarttest-filter.sh $wsdir +# +# Add to HOME/.java.policy +# +# grant codeBase "file:////usr/local/projects/JOGL/webstart/-" { +# permission java.security.AllPermission; +# }; + diff --git a/deployment/deploy-jar-sign.sh b/deployment/deploy-jar-sign.sh new file mode 100755 index 0000000..d6291c4 --- /dev/null +++ b/deployment/deploy-jar-sign.sh @@ -0,0 +1,36 @@ +#! /bin/sh + +jarfile=$1 +shift + +keystore=$1 +shift + +storepass=$1 +shift + +signarg=$1 +shift + +if [ -z "$jarfile" -o -z "$keystore" -o -z "$storepass" ] ; then + echo "usage $0 jarfile pkcs12-keystore storepass [signarg]" + exit 1 +fi + +if [ ! -e $jarfile ] ; then + echo $jarfile does not exist + exit 1 +fi + +if [ ! -e $keystore ] ; then + echo $keystore does not exist + exit 1 +fi + +THISDIR=`pwd` + +echo jarsigner -storetype pkcs12 -keystore $keystore $jarfile \"$signarg\" +jarsigner -storetype pkcs12 -keystore $THISDIR/$keystore -storepass $storepass $jarfile "$signarg" + +cd $THISDIR + diff --git a/deployment/deploy-jars-pack200.sh b/deployment/deploy-jars-pack200.sh new file mode 100755 index 0000000..471e8ab --- /dev/null +++ b/deployment/deploy-jars-pack200.sh @@ -0,0 +1,33 @@ +#! /bin/sh + +wsdir=$1 +shift + +if [ -z "$wsdir" ] ; then + echo usage $0 webstartdir + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +THISDIR=`pwd` + +cd $wsdir + +mkdir -p DLLS +mv *natives*.jar DLLS/ + +for i in *.jar ; do + echo pack200 -E9 $i.pack.gz $i + pack200 -E9 $i.pack.gz $i +done + +mv DLLS/* . + +rm -rf DLLS + +cd $THISDIR + diff --git a/deployment/deploy-jars-repack200.sh b/deployment/deploy-jars-repack200.sh new file mode 100755 index 0000000..1169d63 --- /dev/null +++ b/deployment/deploy-jars-repack200.sh @@ -0,0 +1,30 @@ +#! /bin/sh + +wsdir=$1 +shift + +if [ -z "$wsdir" ] ; then + echo usage $0 webstartdir + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +THISDIR=`pwd` + +cd $wsdir + +rm -rf orig-jars +mkdir -p orig-jars + +for i in *.jar ; do + cp -a $i orig-jars + echo pack200 --repack $i + pack200 --repack $i +done + +cd $THISDIR + diff --git a/deployment/deploy-jars-sign.sh b/deployment/deploy-jars-sign.sh new file mode 100755 index 0000000..1a4421a --- /dev/null +++ b/deployment/deploy-jars-sign.sh @@ -0,0 +1,47 @@ +#! /bin/sh + +wsdir=$1 +shift + +keystore=$1 +shift + +storepass=$1 +shift + +signarg=$1 +shift + +if [ -z "$wsdir" -o -z "$keystore" -o -z "$storepass" ] ; then + echo "usage $0 webstartdir pkcs12-keystore storepass [signarg]" + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +if [ ! -e $keystore ] ; then + echo $keystore does not exist + exit 1 +fi + +THISDIR=`pwd` + +cd $wsdir + +rm -rf demo-jars +mkdir -p demo-jars +mv jogl.test.jar jogl-demos*jar demo-jars/ + +for i in *.jar ; do + echo jarsigner -storetype pkcs12 -keystore $keystore $i \"$signarg\" + jarsigner -storetype pkcs12 -keystore $THISDIR/$keystore -storepass $storepass $i "$signarg" +done + +mv demo-jars/* . +rm -rf demo-jars + +cd $THISDIR + diff --git a/deployment/deploy-jars-webstarttest.sh b/deployment/deploy-jars-webstarttest.sh new file mode 100755 index 0000000..8a98f5d --- /dev/null +++ b/deployment/deploy-jars-webstarttest.sh @@ -0,0 +1,50 @@ +#! /bin/sh + +joglbuilddir=$1 +shift + +wsdir=$1 +shift + +if [ -z "$joglbuilddir" -o -z "$wsdir" ] ; then + echo usage $0 jogl-builddir webstartdir + exit 1 +fi + +if [ ! -e $joglbuilddir ] ; then + echo $joglbuilddir does not exist + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +builddirbase=`basename $joglbuilddir` +joglroot=`dirname $joglbuilddir` +gluegenroot=$joglroot/../gluegen +demosroot=$joglroot/../jogl-demos + +jnlpdir_gluegen=$gluegenroot/jnlp-files +jnlpdir_jogl=$joglroot/jnlp-files +jnlpdir_demos=$demosroot/jnlp-files + +if [ ! -e $jnlpdir_gluegen ] ; then + echo $jnlpdir_gluegen does not exist + exit 1 +fi + +if [ ! -e $jnlpdir_jogl ] ; then + echo $jnlpdir_jogl does not exist + exit 1 +fi + +if [ ! -e $jnlpdir_demos ] ; then + echo $jnlpdir_demos does not exist + exit 1 +fi + +cp -v $joglbuilddir/jar/*.jar $wsdir +cp -v $demosroot/$builddirbase/*.jar $wsdir + diff --git a/deployment/deploy-jars_external-webstarttest.sh b/deployment/deploy-jars_external-webstarttest.sh new file mode 100755 index 0000000..3fc1daa --- /dev/null +++ b/deployment/deploy-jars_external-webstarttest.sh @@ -0,0 +1,26 @@ +#! /bin/sh + +if [ ! -e scripts -o ! -e ../make ] ; then + echo start this script from JOGL/jogl/make + exit 1 +fi + +SOURCE=$1 +shift + +wsdir=$1 +shift + +if [ -z "$SOURCE" -o -z "$wsdir" ] ; then + echo usage $0 source webstartdir + echo source might be [email protected]:webstart/ + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +echo scp -v $SOURCE*natives* $wsdir +scp -v $SOURCE*natives* $wsdir diff --git a/deployment/deploy-jnlp-webstarttest-filter.sh b/deployment/deploy-jnlp-webstarttest-filter.sh new file mode 100755 index 0000000..77eda44 --- /dev/null +++ b/deployment/deploy-jnlp-webstarttest-filter.sh @@ -0,0 +1,25 @@ +#! /bin/sh + +wsdir=$1 +shift + +if [ -z "$wsdir" ] ; then + echo usage $0 webstartdir + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +cd $wsdir + +rm -rf orig-jnlp +mkdir orig-jnlp + +for i in *.jnlp ; do + mv $i orig-jnlp + sed -e 's/<security>//g' -e 's/<\/security>//g' -e 's/<all-permissions\/>//g' orig-jnlp/$i > $i +done + diff --git a/deployment/deploy-jnlp-webstarttest.sh b/deployment/deploy-jnlp-webstarttest.sh new file mode 100755 index 0000000..8f3b0d2 --- /dev/null +++ b/deployment/deploy-jnlp-webstarttest.sh @@ -0,0 +1,79 @@ +#! /bin/sh + +url=$1 +shift + +joglbuilddir=$1 +shift + +wsdir=$1 +shift + +if [ -z "$url" -o -z "$joglbuilddir" -o -z "$wsdir" ] ; then + echo usage $0 codebase-url jogl-builddir webstartdir + echo Examples + echo sh $0 file:////usr/local/projects/JOGL/webstart ../build-x86_64 ../../webstart + echo sh $0 http://domain.org/jogl/webstart ../build-win32 ../../webstart + exit 1 +fi + +if [ ! -e $joglbuilddir ] ; then + echo $joglbuilddir does not exist + exit 1 +fi + +if [ ! -e $wsdir ] ; then + echo $wsdir does not exist + exit 1 +fi + +builddirbase=`basename $joglbuilddir` +joglroot=`dirname $joglbuilddir` +gluegenroot=$joglroot/../gluegen +demosroot=$joglroot/../jogl-demos + +jnlpdir_gluegen=$gluegenroot/jnlp-files +jnlpdir_jogl=$joglroot/jnlp-files +jnlpdir_demos=$demosroot/jnlp-files + +if [ ! -e $jnlpdir_gluegen ] ; then + echo $jnlpdir_gluegen does not exist + exit 1 +fi + +if [ ! -e $jnlpdir_jogl ] ; then + echo $jnlpdir_jogl does not exist + exit 1 +fi + +if [ ! -e $jnlpdir_demos ] ; then + echo $jnlpdir_demos does not exist + exit 1 +fi + +cp -v $jnlpdir_demos/*.html $wsdir + +uri_esc=`echo $url | sed 's/\//\\\\\//g'` +for j in $jnlpdir_gluegen/*.jnlp ; do + jb=`basename $j` + echo "processing $j to $wsdir/$jb" + sed "s/CODEBASE_TAG/$uri_esc/g" \ + $j > $wsdir/$jb +done + +for j in $jnlpdir_jogl/*.jnlp ; do + jb=`basename $j` + echo "processing $j to $wsdir/$jb" + sed -e "s/JOGL_CODEBASE_TAG/$uri_esc/g" \ + -e "s/GLUEGEN_CODEBASE_TAG/$uri_esc/g" \ + $j > $wsdir/$jb +done + +for j in $jnlpdir_demos/*.jnlp ; do + jb=`basename $j` + echo "processing $j to $wsdir/$jb" + sed -e "s/DEMO_CODEBASE_TAG/$uri_esc/g" \ + -e "s/JOGL_CODEBASE_TAG/$uri_esc/g" \ + $j > $wsdir/$jb +done + diff --git a/hudson-builds/archive-jars-latest.sh b/hudson-builds/archive-jars-latest.sh new file mode 100755 index 0000000..651ae0b --- /dev/null +++ b/hudson-builds/archive-jars-latest.sh @@ -0,0 +1,158 @@ +#! /bin/bash + +archivedir=/srv/www/jogamp.org/deployment/archive +rootdir=/srv/www/jogamp.org/deployment/autobuilds + +os_and_archs_minus_one="linux-i586 macosx-universal windows-amd64 windows-i586" +masterpick="linux-amd64" +os_and_archs="$masterpick linux-i586 macosx-universal windows-amd64 windows-i586" + +thisdir=`pwd` +cd $rootdir + +dest=tmp-archive + +rm -rf $dest +mkdir $dest +mkdir $dest/javadoc + +function lslatest() { + pattern=$1 + shift + ls -rt | grep $pattern | tail -1 +} + +function buildnumber_2() { + folder=$1 + shift + echo $folder | awk -F '-' ' { print substr($2, 2); } ' +} + +function buildnumber_3() { + folder=$1 + shift + echo $folder | awk -F '-' ' { print substr($3, 2); } ' +} + +function buildnumber_4() { + folder=$1 + shift + echo $folder | awk -F '-' ' { print substr($4, 2); } ' +} + +gluegenslave=`lslatest gluegen-b` +bgluegenslave=`buildnumber_2 $gluegenslave` +gluegenmaster=`lslatest gluegen-master-b` +bgluegenmaster=`buildnumber_3 $gluegenmaster` +echo +echo GLUEGEN +echo +echo slave build $bgluegenslave - $gluegenslave +echo master build $bgluegenmaster - $gluegenmaster +echo +echo "gluegen.build.number=$bgluegenslave" >> $dest/aggregated.artifact.properties + +cp -a $gluegenslave/build/gluegen*jar $dest/ +cp -a $gluegenslave/build/artifact.properties $dest/gluegen.artifact.properties + +cp -a $gluegenmaster/build/artifact.properties $dest/javadoc/gluegen-master.artifact.properties +mkdir $dest/javadoc/gluegen +cp -a $gluegenmaster/build/javadoc.zip $dest/javadoc/gluegen +cd $dest/javadoc/gluegen +unzip -q javadoc.zip +cd $rootdir + +joglslave=`lslatest jogl-b` +bjoglslave=`buildnumber_2 $joglslave` +joglmaster=`lslatest jogl-master-b` +bjoglmaster=`buildnumber_3 $joglmaster` +echo +echo JOGL +echo +echo slave build $bjoglslave - $joglslave +echo master build $bjoglmaster - $joglmaster +echo +echo "jogl.build.number=$bjoglslave" >> $dest/aggregated.artifact.properties + +cp -a $joglslave/build/jogl*zip $dest/ +cd $dest +for i in *"$os_and_archs_minus_one".zip ; do + unzip -q $i +done +unzip -q *"$masterpick".zip +cd $rootdir +cp -a $joglslave/build/artifact.properties $dest/jogl.artifact.properties + +cp -a $joglmaster/build/artifact.properties $dest/javadoc/jogl-master.artifact.properties +mkdir $dest/javadoc/jogl +cp -a $joglmaster/build/javadoc*.zip $dest/javadoc/jogl +cd $dest/javadoc/jogl +for i in *.zip ; do + unzip -q $i +done +cd $rootdir + +jogldemosmaster=`lslatest jogl-demos-master-b` +bjogldemosmaster=`buildnumber_4 $jogldemosmaster` +echo +echo JOGL DEMOS +echo +echo master build $bjogldemosmaster - $jogldemosmaster +echo +echo "jogl-demos.build.number=$bjogldemosmaster" >> $dest/aggregated.artifact.properties + +cp -a $jogldemosmaster/build/jogl-demos*jar $dest/ +cp -a $jogldemosmaster/build/artifact.properties $dest/jogl-demos.artifact.properties +cd dest + + +joclslave=`lslatest jocl-b` +bjoclslave=`buildnumber_2 $joclslave` +joclmaster=`lslatest jocl-master-b` +bjoclmaster=`buildnumber_3 $joclmaster` +echo +echo JOCL +echo +echo slave build $bjoclslave - $joclslave +echo master build $bjoclmaster - $joclmaster +echo +echo "jocl.build.number=$bjoclslave" >> $dest/aggregated.artifact.properties + +cp -a $joclslave/jocl*jar $dest/ +cp -a $joclslave/artifact.properties $dest/jocl.artifact.properties + +cp -a $joclmaster/artifact.properties $dest/javadoc/jocl-master.artifact.properties +mkdir $dest/javadoc/jocl +cp -a $joclmaster/jocl-javadoc.zip $dest/javadoc/jocl/ +cd $dest/javadoc/jocl +unzip -q jocl-javadoc.zip +cd $rootdir + +jocldemosslave=`lslatest jocl-demos-b` +bjocldemosslave=`buildnumber_3 $jocldemosslave` +echo +echo JOCL DEMOS +echo +echo slave build $bjocldemosslave - $jocldemosslave +echo +echo "jocl-demos.build.number=$bjocldemosslave" >> $dest/aggregated.artifact.properties + +cp -a $jocldemosslave/jocl-demos*jar $dest/ +cp -a $jocldemosslave/artifact.properties $dest/jocl-demos.artifact.properties + +rm -rf $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave +mv $dest $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave + +echo +echo Aggregation folder $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave +echo + +cd $archivedir/gluegen_$bgluegenslave-jogl_$bjoglslave-jocl_$bjoclslave + +echo +echo aggregation.properties +echo +cat jocl-demos.artifact.properties jogl-demos.artifact.properties | sort -u > jocl-demos-jogl-demos.artifact.properties.sorted +sort -u aggregated.artifact.properties > aggregated.artifact.properties.sorted +diff -Nurb aggregated.artifact.properties.sorted jocl-demos-jogl-demos.artifact.properties.sorted + diff --git a/hudson-builds/archive-verify-latest.sh b/hudson-builds/archive-verify-latest.sh new file mode 100755 index 0000000..a149ca8 --- /dev/null +++ b/hudson-builds/archive-verify-latest.sh @@ -0,0 +1,99 @@ +#! /bin/bash + +if [ -z "$1" ] ; then + archive=/srv/www/jogamp.org/deployment/jogamp-next +else + archive=$1 +fi + +logfile=`basename $0 .sh`.log + +rm -rf zips +mkdir zips +cd zips +for i in $archive/*.zip ; do + bname=`basename $i .zip` + unzip -q $i + if [ -e $bname ] ; then + cd $bname + ls > ../$bname.lst + cd .. + else + echo "Error: No folder $bname in $i" + fi +done +cd .. + +rm -rf plain +mkdir plain +cd plain +cp -a $archive/*.jar . +ls > ../plain.lst +cd .. + +rm -rf dump +mkdir dump + +echo "Verifying all files in $archive" +ls -la $archive +echo + +function integrity_check() { + cd dump + for i in ../plain/*.jar ; do + bname=`basename $i` + echo -n "$bname integrity - " + OK=0 + jar xvf $i >& $i.log && OK=1 + if [ $OK -eq 0 ] ; then + echo ERROR + else + echo OK + rm $i.log + fi + done + echo + cd .. +} + +function identity_check() { + mkdir plain/natives + mv plain/*-natives-*jar plain/natives + mkdir plain/demos + mv plain/jogl-demos*jar plain/demos + + cd zips + + for i in ../plain/*.jar ; do + bname=`basename $i` + echo -n "$bname identity - " + OK=0 + for j in `find . -name $bname` ; do + if cmp -s $i $j ; then + OK=1 + echo -n "$j " + fi + done + if [ $OK -eq 0 ] ; then + echo "NONE" + echo "Error: verbose comparison of $bname" + for j in `find . -name $bname` ; do + cmp $i $j + done + else + echo + fi + done + echo + + cd .. + + mv plain/natives/* plain/ + rm -rf plain/natives + mv plain/demos/* plain/ + rm -rf plain/demos +} + +integrity_check 2>&1 | tee $logfile +identity_check 2>&1 | tee $logfile + |