tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
gradle: add package tests
Olli Helenius
2 years ago
55a28322
db339f17
+52
-8
3 changed files
expand all
collapse all
unified
split
pkgs
development
tools
build-managers
gradle
default.nix
tests
java-application
build.gradle
src
main
java
Main.java
+40
-8
pkgs/development/tools/build-managers/gradle/default.nix
···
26
]
27
}:
28
29
-
{ lib, stdenv, fetchurl, makeWrapper, unzip, ncurses5, ncurses6,
0
0
0
0
0
0
0
0
0
30
31
-
# The JDK/JRE used for running Gradle.
32
-
java ? defaultJava,
33
34
-
# Additional JDK/JREs to be registered as toolchains.
35
-
# See https://docs.gradle.org/current/userguide/toolchains.html
36
-
javaToolchains ? [ ]
37
}:
38
39
-
stdenv.mkDerivation rec {
40
pname = "gradle";
41
inherit version;
42
···
99
echo ${ncurses6} >> $out/nix-support/manual-runtime-dependencies
100
'';
101
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
102
meta = with lib; {
103
inherit platforms;
104
description = "Enterprise-grade build system";
···
121
maintainers = with maintainers; [ lorenzleutgeb liff ];
122
mainProgram = "gradle";
123
};
124
-
};
125
126
# NOTE: Default JDKs that are hardcoded below must be LTS versions
127
# and respect the compatibility matrix at
···
26
]
27
}:
28
29
+
{ lib
30
+
, stdenv
31
+
, fetchurl
32
+
, makeWrapper
33
+
, unzip
34
+
, ncurses5
35
+
, ncurses6
36
+
, testers
37
+
, runCommand
38
+
, writeText
39
40
+
# The JDK/JRE used for running Gradle.
41
+
, java ? defaultJava
42
43
+
# Additional JDK/JREs to be registered as toolchains.
44
+
# See https://docs.gradle.org/current/userguide/toolchains.html
45
+
, javaToolchains ? [ ]
46
}:
47
48
+
stdenv.mkDerivation (finalAttrs: {
49
pname = "gradle";
50
inherit version;
51
···
108
echo ${ncurses6} >> $out/nix-support/manual-runtime-dependencies
109
'';
110
111
+
passthru.tests = {
112
+
version = testers.testVersion {
113
+
package = finalAttrs.finalPackage;
114
+
command = ''
115
+
env GRADLE_USER_HOME=$TMPDIR/gradle org.gradle.native.dir=$TMPDIR/native \
116
+
gradle --version
117
+
'';
118
+
};
119
+
120
+
java-application = testers.testEqualContents {
121
+
assertion = "can build and run a trivial Java application";
122
+
expected = writeText "expected" "hello\n";
123
+
actual = runCommand "actual" {
124
+
nativeBuildInputs = [ finalAttrs.finalPackage ];
125
+
src = ./tests/java-application;
126
+
} ''
127
+
cp -a $src/* .
128
+
env GRADLE_USER_HOME=$TMPDIR/gradle org.gradle.native.dir=$TMPDIR/native \
129
+
gradle run --no-daemon --quiet --console plain > $out
130
+
'';
131
+
};
132
+
};
133
+
134
meta = with lib; {
135
inherit platforms;
136
description = "Enterprise-grade build system";
···
153
maintainers = with maintainers; [ lorenzleutgeb liff ];
154
mainProgram = "gradle";
155
};
156
+
});
157
158
# NOTE: Default JDKs that are hardcoded below must be LTS versions
159
# and respect the compatibility matrix at
+7
pkgs/development/tools/build-managers/gradle/tests/java-application/build.gradle
···
0
0
0
0
0
0
0
···
1
+
plugins {
2
+
id('application')
3
+
}
4
+
5
+
application {
6
+
mainClass = 'Main'
7
+
}
+5
pkgs/development/tools/build-managers/gradle/tests/java-application/src/main/java/Main.java
···
0
0
0
0
0
···
1
+
public class Main {
2
+
public static void main(String[] args) {
3
+
System.out.println("hello");
4
+
}
5
+
}