diff options
author | spingel | 2011-03-02 23:21:32 +0000 |
---|---|---|
committer | spingel | 2011-03-02 23:21:32 +0000 |
commit | 2dda9f11f1f8f2869723e923b02accdfbaa568ae (patch) | |
tree | 2e53bb0c6c9a631b62263ec171abf047baf21511 | |
parent | 1627e260404d6ce2628fdc8dfd8353ffd74cf109 (diff) | |
download | org.eclipse.mylyn.incubator-2dda9f11f1f8f2869723e923b02accdfbaa568ae.tar.gz org.eclipse.mylyn.incubator-2dda9f11f1f8f2869723e923b02accdfbaa568ae.tar.xz org.eclipse.mylyn.incubator-2dda9f11f1f8f2869723e923b02accdfbaa568ae.zip |
RESOLVED - bug 335647: [releng] automate publishing of releases
https://bugs.eclipse.org/bugs/show_bug.cgi?id=335647
6 files changed, 164 insertions, 20 deletions
diff --git a/org.eclipse.mylyn.incubator-site/.project b/org.eclipse.mylyn.incubator-site/.project new file mode 100644 index 00000000..34b9b8cb --- /dev/null +++ b/org.eclipse.mylyn.incubator-site/.project @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.mylyn.incubator-site</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + </buildSpec> + <natures> + </natures> +</projectDescription> diff --git a/org.eclipse.mylyn.incubator-site/pack-and-sign/build.xml b/org.eclipse.mylyn.incubator-site/pack-and-sign/build.xml index 57ccc2c0..27472fd5 100644 --- a/org.eclipse.mylyn.incubator-site/pack-and-sign/build.xml +++ b/org.eclipse.mylyn.incubator-site/pack-and-sign/build.xml @@ -2,37 +2,42 @@ <dirname property="scriptdir" file="${ant.file.pack-and-sign}"/> <property name="pack200" value="${java.home}/bin"/> + <property name="filter" value=""/> <target name="pack-and-sign"> <fail unless="localRepository">Required property localRepository not set</fail> <fail unless="projectDir">Required property projectDir not set</fail> <fail unless="repositoryName">Required property repositoryName not set</fail> + <fail unless="signDir">Required property signDir not set</fail> + <fail unless="dist">Required property dist not set</fail> <echo>Running on ${os.name} ${os.version} (${os.arch}) / ${ant.version} / ${java.vendor} ${java.vm.name} ${java.version}</echo> - <!-- sign --> - <condition property="sign.skip" value="true"><equals arg1="${skipSign}" arg2="true"/></condition> + <condition property="pack.skip" value="true"><equals arg1="${skipPack}" arg2="true"/></condition> + <condition property="promote.skip" value="true"><equals arg1="${skipPromote}" arg2="true"/></condition> + + <!-- sign --> <antcall target="sign"/> <!-- condition jars --> - <delete dir="${projectDir}/condition"/> - <copy todir="${projectDir}/condition"> + <delete dir="${projectDir}/conditioner"/> + <copy todir="${projectDir}/conditioner"> <fileset dir="${projectDir}/site"> - <include name="**/*mylyn*.jar"/> + <include name="**/*${filter}*.jar"/> </fileset> </copy> <antcall target="pack"> <param name="args" value="-processAll -repack"/> - <param name="site" value="${projectDir}/condition"/> + <param name="site" value="${projectDir}/conditioner"/> </antcall> <copy todir="${projectDir}/site"> - <fileset dir="${projectDir}/condition"> - <include name="**/*mylyn*.jar"/> + <fileset dir="${projectDir}/conditioner"> + <include name="**/*${filter}*.jar"/> </fileset> </copy> @@ -62,16 +67,36 @@ <include name="**/*"/> </fileset> </zip> + + <!-- promote --> + + <antcall target="promote"/> + </target> <target name="sign" unless="sign.skip"> <chmod perm="755" file="${scriptdir}/sign-and-wait.sh"/> <exec executable="${scriptdir}/sign-and-wait.sh" failonerror="true"> <arg value="${projectDir}/site"/> + <arg value="${signDir}"/> + <arg value="${filter}"/> + </exec> + </target> + + <target name="promote" unless="promote.skip"> + <chmod perm="755" file="${scriptdir}/promote.sh"/> + <chmod perm="755" file="${scriptdir}/update-composite.sh"/> + <exec executable="${scriptdir}/promote.sh" dir="${scriptdir}" failonerror="true"> + <arg value="${dist}"/> + <arg value="${version}"/> + <arg value="${qualifier}"/> + <arg value="${projectDir}"/> + <arg value="${archiveDir}"/> + <arg value="${siteDir}"/> </exec> </target> - <target name="pack"> + <target name="pack" unless="pack.skip"> <delete file="${site}/content.jar" /> <delete file="${site}/artifacts.jar" /> diff --git a/org.eclipse.mylyn.incubator-site/pack-and-sign/promote.sh b/org.eclipse.mylyn.incubator-site/pack-and-sign/promote.sh new file mode 100644 index 00000000..14ecfd4f --- /dev/null +++ b/org.eclipse.mylyn.incubator-site/pack-and-sign/promote.sh @@ -0,0 +1,38 @@ +#!/bin/sh -e + +DIST=$1 +VERSION=$2 +QUALIFIER=$3 +SRC=$4 +ARCHIVE=$5 +SITE=$6 + +DST=$ARCHIVE/$VERSION/$QUALIFIER + + +if [ -e $DST ]; then + echo $DST already exists + exit 1 +fi + +echo Promoting $VERSION.$QUALIFIER + +mkdir -p $DST/ +unzip -d $DST/ $SRC/site-packed.zip +cp $SRC/site-archive.zip $DST/$DIST-$VERSION.$QUALIFIER.zip + +#chgrp -R mylynadmin $DST +chmod g+w -R $DST + +cd $(dirname $0) +BASE=$(pwd) + +if [ -n "$SITE" ]; then + for i in $SITE $SITE/*; do + if [ -e $i/composite.index ]; then + echo "Updating $i" + cd $i + $BASE/update-composite.sh + fi + done +fi diff --git a/org.eclipse.mylyn.incubator-site/pack-and-sign/sign-and-wait.sh b/org.eclipse.mylyn.incubator-site/pack-and-sign/sign-and-wait.sh index 11ef105d..a530ec90 100644 --- a/org.eclipse.mylyn.incubator-site/pack-and-sign/sign-and-wait.sh +++ b/org.eclipse.mylyn.incubator-site/pack-and-sign/sign-and-wait.sh @@ -11,16 +11,16 @@ # Tasktop Technologies - initial API and implementation #******************************************************************************* -if [ $# -eq 0 ] +if [ $# -lt 3 ] then - echo "usage: sign-and-wait.sh directory" + echo "usage: sign-and-wait.sh srcdir signdir filter" exit 1 fi set -v SRC=$1 -DST=/home/data/httpd/download-staging.priv/tools/mylyn/hudson/signing +DST=/home/data/httpd/download-staging.priv/$2 OUT=$DST/output LOG=/home/data/httpd/download-staging.priv/arch/signer.log @@ -35,19 +35,19 @@ mkdir -p $OUT echo Creating archive for signing cd $SRC -/usr/bin/find -name "org.eclipse*mylyn*.jar" | zip $DST/mylyn.zip -@ +/usr/bin/find -name "*$3*" | zip $DST/site.zip -@ # sign -/usr/bin/sign $DST/mylyn.zip nomail $OUT +/usr/bin/sign $DST/site.zip nomail $OUT # wait up to 30 minutes for signing to complete tail -f $LOG | grep -E \(Extracting\|Finished\) & I=0 -while [ $I -lt 60 ] && [ ! -e $OUT/mylyn.zip ]; do - echo Waiting for $OUT/mylyn.zip +while [ $I -lt 60 ] && [ ! -e $OUT/site.zip ]; do + echo Waiting for $OUT/site.zip sleep 30 let I=I+1 done @@ -55,18 +55,18 @@ done PID=`jobs -l -p` kill $PID -if [ ! -e $OUT/mylyn.zip ] +if [ ! -e $OUT/site.zip ] then echo - echo Signing Failed: Timeout waiting for $OUT/mylyn.zip + echo Signing Failed: Timeout waiting for $OUT/site.zip exit 1 fi # unzip echo Unzipping signed files -/usr/bin/unzip -o -d $SRC $OUT/mylyn.zip +/usr/bin/unzip -o -d $SRC $OUT/site.zip # cleanup -rm $DST/mylyn.zip +rm $DST/site.zip diff --git a/org.eclipse.mylyn.incubator-site/pack-and-sign/update-composite.sh b/org.eclipse.mylyn.incubator-site/pack-and-sign/update-composite.sh new file mode 100644 index 00000000..cb06c157 --- /dev/null +++ b/org.eclipse.mylyn.incubator-site/pack-and-sign/update-composite.sh @@ -0,0 +1,57 @@ +#!/bin/bash -e + +BASE=$(dirname $0) +source composite.index + +if [ "$DIRS" == "" ]; then + echo "missing DIRS" + exit 1 +fi + +if [ "$NAME" == "" ]; then + echo "missing NAME" + exit 1 +fi + +TIMESTAMP=$(date +%s)000 + +compose() { +cat > $FILE <<EOF +<?xml version='1.0' encoding='UTF-8'?> +<?TAG version='1.0.0'?> +<repository name='NAME' type='TYPE' version='1.0.0'> + <properties size='2'> + <property name='p2.compressed' value='true'/> + <property name='p2.timestamp' value='TIMESTAMP'/> + </properties> + <children size='CHILD_COUNT'> +EOF + +sed -i -e "s/TAG/$TAG/" -e "s/TYPE/$TYPE/" $FILE +sed -i -e "s/NAME/$NAME/" -e "s/TIMESTAMP/$TIMESTAMP/" $FILE +COUNT=0 +for i in $DIRS; do + echo " <child location='$i'/>" >> $FILE + COUNT=$((COUNT+1)) +done +sed -i -e "s/CHILD_COUNT/$COUNT/" $FILE + +cat >> $FILE <<EOF + </children> +</repository> +EOF + +echo "Wrote $COUNT entries to $FILE" +} + +FILE=compositeArtifacts.xml +TAG=compositeArtifactRepository +TYPE=org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository + +compose + +FILE=compositeContent.xml +TAG=compositeMetadataRepository +TYPE=org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository + +compose diff --git a/org.eclipse.mylyn.incubator-site/pom.xml b/org.eclipse.mylyn.incubator-site/pom.xml index 7d48c1b4..265b3f56 100644 --- a/org.eclipse.mylyn.incubator-site/pom.xml +++ b/org.eclipse.mylyn.incubator-site/pom.xml @@ -22,6 +22,7 @@ <name>Mylyn Incubator</name> <properties> <qualifier>${project.unqualifiedVersion}</qualifier> + <sign-dir>tools/mylyn/hudson/signing/incubator</sign-dir> </properties> <build> <plugins> @@ -81,9 +82,21 @@ <ant antfile="pack-and-sign/build.xml"> <property name="localRepository" value="${settings.localRepository}"/> <property name="projectDir" value="${project.build.directory}"/> + <property name="signDir" value="${sign-dir}"/> + <property name="archiveDir" value="${mylyn-archive}"/> + <property name="siteDir" value="${mylyn-site}"/> + + <property name="dist" value="mylyn"/> + <property name="filter" value="mylyn"/> <property name="repositoryName" value="${mylyn-incubator-repository}"/> <property name="pack200" value="${mylyn-pack200}"/> + <property name="skipSign" value="${mylyn-skip-sign}"/> + <property name="skipPack" value="${mylyn-skip-pack}"/> + <property name="skipPromote" value="${mylyn-skip-promote}"/> + + <property name="version" value="${unqualifiedVersion}"/> + <property name="qualifier" value="${buildQualifier}"/> </ant> <echo file="${project.build.directory}/version.properties"> <![CDATA[ |