summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorJani Laakso <jani.laakso@itmill.com>2007-03-14 15:34:00 +0000
committerJani Laakso <jani.laakso@itmill.com>2007-03-14 15:34:00 +0000
commitcd86f91b66bb906317f6c3121ed42e7555fce94d (patch)
tree17b532b5298bf3f253d2d980e046aebfc0ed30fb /build
parent9b856189be6d65cbdfbba45a940b2bf2bb05c7f8 (diff)
downloadvaadin-framework-cd86f91b66bb906317f6c3121ed42e7555fce94d.tar.gz
vaadin-framework-cd86f91b66bb906317f6c3121ed42e7555fce94d.zip
renamed script
svn changeset:905/svn branch:trunk
Diffstat (limited to 'build')
-rw-r--r--build/toolkit-make-release.pl120
1 files changed, 120 insertions, 0 deletions
diff --git a/build/toolkit-make-release.pl b/build/toolkit-make-release.pl
new file mode 100644
index 0000000000..cc81558eb6
--- /dev/null
+++ b/build/toolkit-make-release.pl
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+#
+# NOTE: tested only with Jani Laakso's environment
+#
+
+# working directory to make releases
+my $WORKDIR = "/home/jani/crypt/tk";
+
+# directory prefix where release package zip file is stored
+my $SVN_ROOT = "https://svn.itmill.com/svn/itmill-toolkit";
+my $SVN_URL_BUILDS = $SVN_ROOT."/builds";
+
+my $usage =
+ "Usage: make-release.sh <branch> <version> <dir>\n".
+ " <branch> is new major.minor version, e.g. 4.0\n".
+ " <version> is new version, e.g. 4.0.1-rc3\n".
+ " <target> is directory to store release zip file, e.g. internal/4.0.1-rc/\n";
+
+my $BRANCH = shift(@ARGV) || die($usage);
+my $VERSION = shift(@ARGV) || die($usage);
+my $TARGET = shift(@ARGV) || die($usage);
+
+my $t = "";
+
+if (!$BRANCH =~ /([4-9]{1}\.[0-9]{1})/) {
+ die ("<branch> must be format {x}.{y} where {x}=major (4-9), ".
+ "{y}=minor (0-9).\n");
+}
+if (
+ (!$VERSION =~ /[4-9]{1}\.[0-9]{1,2}.[0-9]{1,3}/) &&
+ (!$VERSION =~ /[4-9]{1}\.[0-9]{1,2}.[0-9]{1,3}-rc[0-9]{1,2}/)
+ ) {
+ die ("<version> must be format {x}.{y}.{z} or x.y.z-rc{m} ".
+ "where {x}=major (4-9), {y}=minor (0-99), {z}=revision ".
+ "(0-999) and optional release candidate number {m}=(0-99).\n");
+}
+if (
+ (!$TARGET =~ /release\/[4-9]{1}\.[0-9]{1,2}.[0-9]{1,3}/) &&
+ (!$TARGET =~ /internal\/[4-9]{1}\.[0-9]{1,2}.[0-9]{1,3}-rc[0-9]{1,2}/)
+ ) {
+ die ("<dir> must be e.g. internal/4.0.1-rc/ or release/4.0.\n");
+}
+
+print "Make sure $WORKDIR directory\n";
+print "BRANCH [$BRANCH]\nVERSION [$VERSION]\nDIR [$SVN_URL_BUILDS$TARGET]\n";
+
+&proceed("Initializing repositories");
+# go to directory where repository working copies (WC) are
+chdir($WORKDIR);
+# delete old repo
+&execute("rm -rf $BRANCH");
+# checkout (if missing) build repository
+&execute("svn co $SVN_ROOT/builds");
+# it's safest to replace 4.0 from trunk (but you could use also merging)
+&execute(
+ "svn rm $SVN_ROOT/branches/$BRANCH ".
+ "-m \"Recreating $BRANCH branch from trunk. Removing old $BRANCH.\""
+);
+&execute(
+ "svn copy $SVN_ROOT/trunk $SVN_ROOT/branches/$BRANCH ".
+ "-m \"Recreating $BRANCH branch from trunk. Copying new $BRANCH.\""
+);
+# checkout $BRANCH
+&execute("svn co $SVN_ROOT/branches/$BRANCH");
+
+&proceed("Changing VERSION");
+# go to $BRANCH directory
+chdir("$WORKDIR/$BRANCH");
+# fix links as VERSION changes
+&execute(
+ "sed s/`cat build/VERSION | cut -f2 -d'='`/$VERSION/ ".
+ "index.html >/tmp/index.html"
+);
+&execute("diff index.html /tmp/index.html");
+&execute("cp /tmp/index.html index.html");
+# increment VERSION
+&execute("echo \"version=$VERSION\" >build/VERSION");
+
+&proceed("Commit changes");
+# commit changes
+&execute("svn ci -m \"Building $VERSION release.\"");
+
+&proceed("Executing ant");
+# execute build script, takes 5-40 minutes depending on hw
+chdir("$WORKDIR/$BRANCH/build");
+&execute("ant");
+
+&proceed("Copying branch 4.0 under tags branch");
+# copy branch 4.0 into tags directory (some may interpret this as tagging)
+&execute(
+ "svn copy $SVN_ROOT/branches/4.0 $SVN_ROOT/tags/$VERSION ".
+ "-m \"Copying $VERSION release into tags.\""
+);
+
+&proceed("Committing release package zip file to builds dir");
+# commit release package zip to SVN
+&execute("cp result/itmill-toolkit-$VERSION.zip $WORKDIR/builds/$TARGET");
+chdir("$WORKDIR/builds/$TARGET");
+&execute("svn add itmill-toolkit-$VERSION.zip");
+&execute("svn ci -m \"Added $VERSION release package.\"");
+
+print "Done.\n";
+exit;
+
+sub proceed() {
+ my $msg = shift;
+ $msg = "\n\n*** ".$msg.", press any key to continue ***";
+ print $msg;
+ <STDIN>;
+}
+
+sub execute() {
+ my $cmd = shift;
+ print " $cmd\n";
+ my $result = `$cmd`;
+ print $result."\n";
+}