@@ -13,14 +13,27 @@ dependencies {
1313    implementation ' com.github.docker-java:docker-java-transport-httpclient5:3.3.6' 
1414    implementation ' com.github.docker-java:docker-java-core:3.3.6' 
1515
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+ 
1727    annotationProcessor " org.springframework.boot:spring-boot-configuration-processor" 
28+ 
1829}
1930
31+ def  imageName =  ' togetherjava.org:5001/togetherjava/jshellbackend:master' ?:  ' latest' 
32+ 
2033jib  {
2134    from. image =  ' eclipse-temurin:21' 
2235    to {
23-         image =  ' togetherjava.org:5001/togetherjava/jshellbackend:master '   ?:   ' latest ' 
36+         image =  imageName 
2437        auth {
2538            username =  System . getenv(' ORG_REGISTRY_USER' ?:  ' ' 
2639            password =  System . getenv(' ORG_REGISTRY_PASSWORD' ?:  ' ' 
@@ -36,4 +49,43 @@ shadowJar {
3649    archiveBaseName. set(' JShellPlaygroundBackend' 
3750    archiveClassifier. set(' ' 
3851    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' 
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