diff options
Diffstat (limited to 'container-dev-builder/make.sh')
-rwxr-xr-x | container-dev-builder/make.sh | 75 |
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 .. |