Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2011-03-02 23:21:32 +0000
committerspingel2011-03-02 23:21:32 +0000
commit2dda9f11f1f8f2869723e923b02accdfbaa568ae (patch)
tree2e53bb0c6c9a631b62263ec171abf047baf21511
parent1627e260404d6ce2628fdc8dfd8353ffd74cf109 (diff)
downloadorg.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
-rw-r--r--org.eclipse.mylyn.incubator-site/.project11
-rw-r--r--org.eclipse.mylyn.incubator-site/pack-and-sign/build.xml43
-rw-r--r--org.eclipse.mylyn.incubator-site/pack-and-sign/promote.sh38
-rw-r--r--org.eclipse.mylyn.incubator-site/pack-and-sign/sign-and-wait.sh22
-rw-r--r--org.eclipse.mylyn.incubator-site/pack-and-sign/update-composite.sh57
-rw-r--r--org.eclipse.mylyn.incubator-site/pom.xml13
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[

Back to the top