summaryrefslogtreecommitdiffstats
path: root/container-dev-builder/make.sh
diff options
context:
space:
mode:
Diffstat (limited to 'container-dev-builder/make.sh')
-rwxr-xr-xcontainer-dev-builder/make.sh75
1 files changed, 75 insertions, 0 deletions
diff --git a/container-dev-builder/make.sh b/container-dev-builder/make.sh
new file mode 100755
index 00000000000..ccecebdaed3
--- /dev/null
+++ b/container-dev-builder/make.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+export VERSION=$1
+if [ -z "$VERSION" ]
+then
+ echo "usage: $(basename $0) <version> [<builddir>]"
+ exit 1
+fi
+echo VERSION=$VERSION
+
+export BASEDIR=$2
+if [ "$BASEDIR" ]
+then
+ export POM_FORMAT="$BASEDIR/%s-HEAD/%s/pom.xml"
+else
+ export POM_FORMAT="$(pwd)/../%s/pom.xml"
+fi
+echo POM_FORMAT=$POM_FORMAT
+echo
+
+echo "-------------------------------------------------------------------------------"
+echo "Compiling toolkit."
+echo "-------------------------------------------------------------------------------"
+cd tools
+mvn -q clean install -DskipTests
+JAVA_TOOLS="java -cp $(pwd)/target/tools-jar-with-dependencies.jar"
+echo
+cd ..
+
+DEPS_NEXT="com.yahoo.vespa:container-disc:jar:$VERSION:compile"
+DEPS_PREV=""
+BLACKLIST=$(cat dependency_blacklist)
+
+PASS=0
+rm -rf target
+mkdir target
+cd target
+while [ "$DEPS_NEXT" ]
+do
+ PASS=$((PASS+1))
+ mkdir -p "pass$PASS"
+ cd "pass$PASS"
+
+ DEPS_PREV=$DEPS_NEXT
+ DEPS_NEXT=""
+
+ echo "-------------------------------------------------------------------------------"
+ echo "Deriving dependencies, pass $PASS."
+ echo "-------------------------------------------------------------------------------"
+ echo DEPENDENCIES=$DEPS_PREV
+ echo "Building dependency tree.."
+ $JAVA_TOOLS com.yahoo.container.dev.builder.PomFileGenerator $VERSION $DEPS_PREV > pom.xml
+ mvn -q dependency:tree -DoutputFile=dependencies
+ DEPS_NEXT="$($JAVA_TOOLS com.yahoo.container.dev.builder.DependencyResolver . $BLACKLIST)"
+
+ echo "Resolving X-JDisc-Preinstall-Bundle instructions.."
+ mvn -q dependency:unpack-dependencies \
+ -DexcludeTransitive=true \
+ -Dmdep.unpack.includes="META-INF/MANIFEST.MF" \
+ -Dmdep.useSubDirectoryPerArtifact=true \
+ -DoutputDirectory=.
+ DEPS_NEXT="$DEPS_NEXT $($JAVA_TOOLS com.yahoo.container.dev.builder.PreinstalledBundleResolver . "$POM_FORMAT")"
+
+ DEPS_NEXT=$(echo $DEPS_NEXT | sort | uniq)
+ [ "$DEPS_NEXT" == "$DEPS_PREV" ] && DEPS_NEXT=""
+ echo
+ cd ..
+done
+
+echo "-------------------------------------------------------------------------------"
+echo "Testing final pom.xml"
+echo "-------------------------------------------------------------------------------"
+cp pass$PASS/pom.xml .
+mvn clean install -DskipTests || exit 1
+cd ..