@@ -13,14 +13,27 @@ dependencies {
13
13
implementation ' com.github.docker-java:docker-java-transport-httpclient5:3.3.6'
14
14
implementation ' com.github.docker-java:docker-java-core:3.3.6'
15
15
16
- testImplementation ' org.springframework.boot:spring-boot-starter-test'
16
+ testImplementation(' org.springframework.boot:spring-boot-starter-test' ) {
17
+ configurations {
18
+ all {
19
+ exclude group : ' org.springframework.boot' , module : ' spring-boot-starter-logging'
20
+ exclude group : ' ch.qos.logback' , module : ' logback-classic'
21
+ exclude group : ' org.apache.logging.log4j' , module : ' log4j-to-slf4j'
22
+ }
23
+ }
24
+ }
25
+ testImplementation gradleTestKit()
26
+
17
27
annotationProcessor " org.springframework.boot:spring-boot-configuration-processor"
28
+
18
29
}
19
30
31
+ def imageName = ' togetherjava.org:5001/togetherjava/jshellbackend:master' ?: ' latest' ;
32
+
20
33
jib {
21
34
from. image = ' eclipse-temurin:21'
22
35
to {
23
- image = ' togetherjava.org:5001/togetherjava/jshellbackend:master ' ?: ' latest '
36
+ image = imageName
24
37
auth {
25
38
username = System . getenv(' ORG_REGISTRY_USER' ) ?: ' '
26
39
password = System . getenv(' ORG_REGISTRY_PASSWORD' ) ?: ' '
@@ -36,4 +49,43 @@ shadowJar {
36
49
archiveBaseName. set(' JShellPlaygroundBackend' )
37
50
archiveClassifier. set(' ' )
38
51
archiveVersion. set(' ' )
39
- }
52
+ }
53
+
54
+ tasks. register(' buildDockerImage' ) {
55
+ group = ' Docker'
56
+ description = ' builds jshellwrapper as docker image'
57
+ dependsOn jibDockerBuild
58
+ doFirst{
59
+ println (' creating docker image...' )
60
+ }
61
+ doLast{
62
+ println (' docker image is ready for use' )
63
+ }
64
+ }
65
+
66
+ tasks. register(' removeDockerImage' , Exec ) {
67
+ group = ' Docker'
68
+ description = ' removes jshellwrapper image'
69
+ commandLine ' docker' , ' rmi' , ' -f' , imageName
70
+ doLast{
71
+ println (' docker image has been removed' )
72
+ }
73
+ }
74
+
75
+ tasks. named(' test' ) {
76
+ dependsOn tasks. named(' buildDockerImage' )
77
+
78
+ doFirst {
79
+ try {
80
+ println ' Running JShellAPI tests...'
81
+ } catch (Exception e) {
82
+ println ' JShellAPI tests failed'
83
+ tasks. named(' removeDockerImage' ). get(). execute()
84
+ throw e
85
+ }
86
+ }
87
+ doLast {
88
+ println ' JShellAPI tests completed.'
89
+ }
90
+ finalizedBy tasks. named(' removeDockerImage' )
91
+ }
0 commit comments