diff options
Diffstat (limited to 'pkgs/build-support/release')
-rw-r--r-- | pkgs/build-support/release/ant-build.nix | 2 | ||||
-rw-r--r-- | pkgs/build-support/release/default.nix | 4 | ||||
-rw-r--r-- | pkgs/build-support/release/maven-build.nix | 97 |
3 files changed, 102 insertions, 1 deletions
diff --git a/pkgs/build-support/release/ant-build.nix b/pkgs/build-support/release/ant-build.nix index 89b1db090a5..04eec99c7ed 100644 --- a/pkgs/build-support/release/ant-build.nix +++ b/pkgs/build-support/release/ant-build.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation ( header "Generating jar wrappers" '' + (stdenv.lib.concatMapStrings (w: '' - cat >> $out/bin/jclasslib <<EOF + cat >> $out/bin/${w.name} <<EOF #! /bin/sh export JAVA_HOME=$jre $jre/bin/java ${if w ? mainClass then "-cp $out/lib/java/${w.jar} ${w.mainClass}" else "-jar $out/lib/java/${w.jar}"} \$@ diff --git a/pkgs/build-support/release/default.nix b/pkgs/build-support/release/default.nix index 357a5227cbd..b7a362aa9f9 100644 --- a/pkgs/build-support/release/default.nix +++ b/pkgs/build-support/release/default.nix @@ -18,6 +18,10 @@ rec { { inherit stdenv; } // args); + mvnBuild = args: import ./maven-build.nix ( + { inherit stdenv; + } // args); + nixBuild = args: import ./nix-build.nix ( { inherit stdenv; } // args); diff --git a/pkgs/build-support/release/maven-build.nix b/pkgs/build-support/release/maven-build.nix new file mode 100644 index 00000000000..2fa42dd1b10 --- /dev/null +++ b/pkgs/build-support/release/maven-build.nix @@ -0,0 +1,97 @@ +{ stdenv +, name +, src +, doTest ? true +, doTestCompile ? true +, doJavadoc ? false +, doCheckstyle ? false +, doRelease ? false +, includeTestClasses ? true +, extraMvnFlags ? "" +, ... +} @ args : + +let + mvnFlags = "-Dmaven.repo.local=$M2_REPO ${if doTest then "" else "-Dmaven.test.skip.exec=true"} ${extraMvnFlags}"; +in + +stdenv.mkDerivation ( rec { + inherit name src; + phases = "setupPhase unpackPhase patchPhase mvnCompile ${if doTestCompile then "mvnTestCompile mvnTestJar" else ""} ${if doTest then "mvnTest mvnCobertura" else ""} ${if doJavadoc then "mvnJavadoc" else ""} ${if doCheckstyle then "mvnCheckstyle" else ""} mvnJar mvnAssembly mvnRelease finalPhase"; + + setupPhase = '' + runHook preSetupPhase + + ensureDir $out/nix-support + export LANG="en_US.UTF-8" + export LOCALE_ARCHIVE=$glibcLocales/lib/locale/locale-archive + export M2_REPO=$TMPDIR/repository + + runHook postSetupPhase + ''; + + mvnCompile = '' + mvn compile ${mvnFlags} + ''; + + mvnTestCompile = '' + mvn test-compile ${mvnFlags} + ''; + + mvnTestJar = '' + mvn jar:test-jar ${mvnFlags} + ''; + + mvnTest = '' + mvn test ${mvnFlags} + ''; + + mvnJavadoc = '' + mvn javadoc:javadoc ${mvnFlags} + cp -R target/site/apidocs $out/apidocs + echo "report javadoc $out/apidocs" >> $out/nix-support/hydra-build-products + ''; + + mvnCobertura = '' + mvn cobertura:cobertura ${mvnFlags} + cp -R target/site/cobertura $out/cobertura + echo "report cobertura $out/cobertura" >> $out/nix-support/hydra-build-products + ''; + + mvnCheckstyle = '' + mvn checkstyle:checkstyle ${mvnFlags} + ensureDir $out/checkstyle + cp -R target/site/checkstyle.* $out/checkstyle/ + cp -R target/site/images $out/checkstyle/images + echo "report checkstyle $out/checkstyle/checkstyle.html" >> $out/nix-support/hydra-build-products + ''; + + mvnJar = '' + mvn jar:jar ${mvnFlags} + ''; + + mvnAssembly = '' + mvn assembly:assembly ${mvnFlags} + ''; + + mvnRelease = '' + ensureDir $out/release +ls -l target/ + zip=$(ls target/*.zip| head -1) + releaseName=$(basename $zip .zip) + releaseName="$releaseName-r${toString src.rev}" + cp $zip $out/release/$releaseName.zip + + echo "$releaseName" > $out/nix-support/hydra-release-name + + ${if doRelease then '' + echo "file zip $out/release/$releaseName.zip" >> $out/nix-support/hydra-build-products + '' else ""} + ''; + + finalPhase = '' + ensureDir $out/site + cp -R src/test/site/* $out/site + ''; +} // args +) |