X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=012d61ea2d9b4156cc8220d58d0827a1a5b2ed7f;hb=fe88522a1771e72d1e21f81764b823a1f708cc1f;hp=011be6702613d4704477cd3c8c4442485fd81806;hpb=378ab910854d41866fd8436a9fbd8604ba5da586;p=jalview.git diff --git a/build.gradle b/build.gradle index 011be67..012d61e 100644 --- a/build.gradle +++ b/build.gradle @@ -238,7 +238,7 @@ ext { install4jDMGBackgroundImageFile = "${install4j_dmg_background}" install4jInstallerName = "${jalview_name} Non-Release Installer" install4jExecutableName = install4j_executable_name - install4jExtraScheme = "jalviewx" + install4jExtraScheme = "jalviewextra" install4jMacIconsFile = string("${install4j_images_dir}/${install4j_mac_icons_file}") install4jWindowsIconsFile = string("${install4j_images_dir}/${install4j_windows_icons_file}") install4jPngIconFile = string("${install4j_images_dir}/${install4j_png_icon_file}") @@ -269,6 +269,7 @@ ext { reportRsyncCommand = true install4jSuffix = "" install4jInstallerName = "${jalview_name} Installer" + install4jExtraScheme = (CHANNEL=="RELEASE")?"jalviewx":"jalviewjs" break case "ARCHIVE": @@ -1769,6 +1770,7 @@ task testTask0(type: Test) { preserveOrder true useDefaultListeners=true } + timeout = Duration.ofMinutes(15) } /* separated tests */ @@ -1781,6 +1783,7 @@ task testTask1(type: Test) { preserveOrder true useDefaultListeners=true } + timeout = Duration.ofMinutes(5) } task testTask2(type: Test) { @@ -1792,6 +1795,7 @@ task testTask2(type: Test) { preserveOrder true useDefaultListeners=true } + timeout = Duration.ofMinutes(5) } task testTask3(type: Test) { group = "Verification" @@ -1802,6 +1806,7 @@ task testTask3(type: Test) { preserveOrder true useDefaultListeners=true } + timeout = Duration.ofMinutes(5) } /* insert more testTaskNs here -- change N to next digit or other string */ @@ -1818,6 +1823,7 @@ task testTaskN(type: Test) { } */ + /* * adapted from https://medium.com/@wasyl/pretty-tests-summary-in-gradle-744804dd676c * to summarise test results from all Test tasks @@ -2150,6 +2156,16 @@ task cleanDist { } +task launcherJar(type: Jar) { + manifest { + attributes ( + "Main-Class": shadow_jar_main_class, + "Implementation-Version": JALVIEW_VERSION, + "Application-Name": applicationName + ) + } +} + shadowJar { group = "distribution" description = "Create a single jar file with all dependency libraries merged. Can be run with java -jar" @@ -2163,6 +2179,10 @@ shadowJar { from groovyJars from otherJars + manifest { + // shadowJar manifest must inheritFrom another Jar task. Can't set attributes here. + inheritFrom(project.tasks.launcherJar.manifest) + } // we need to include the groovy-swing Include-Package for it to run in the shadowJar doFirst { def jarFileManifests = [] @@ -2172,9 +2192,7 @@ shadowJar { jarFileManifests += mf } } - manifest { - attributes "Implementation-Version": JALVIEW_VERSION, "Application-Name": applicationName from (jarFileManifests) { eachEntry { details -> if (!details.key.equals("Import-Package")) { @@ -2187,6 +2205,7 @@ shadowJar { duplicatesStrategy "INCLUDE" + // this mainClassName is mandatory but gets ignored due to manifest created in doFirst{}. Set the Main-Class as an attribute in launcherJar instead mainClassName = shadow_jar_main_class mergeServiceFiles() classifier = "all-"+JALVIEW_VERSION+"-j"+JAVA_VERSION @@ -2240,9 +2259,9 @@ task getdownImages() { dependsOn getdownImagesProcess } -task getdownWebsite() { +task getdownWebsiteBuild() { group = "distribution" - description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer" + description = "Create the getdown minimal app folder, and website folder for this version of jalview. Website folder also used for offline app installer. No digest is created." dependsOn getdownImages if (buildDist) { @@ -2354,7 +2373,7 @@ task getdownWebsite() { from s into "${getdownAppBaseDir}/${getdown_wrapper_script_dir}" } - getdownTextLines += "resource = ${getdown_wrapper_script_dir}/${script}" + getdownTextLines += "xresource = ${getdown_wrapper_script_dir}/${script}" } } @@ -2496,7 +2515,9 @@ task getdownDigestDir(type: JavaExec) { task getdownDigest(type: JavaExec) { group = "distribution" description = "Digest the getdown website folder" - dependsOn getdownWebsite + + dependsOn getdownWebsiteBuild + doFirst { classpath = files(getdownLauncher) } @@ -2529,12 +2550,19 @@ task getdown() { } } +task getdownWebsite { + group = "distribution" + description = "A task to create the whole getdown channel website dir including digest file" + + dependsOn getdownWebsiteBuild + dependsOn getdownDigest +} task getdownArchiveBuild() { group = "distribution" description = "Put files in the archive dir to go on the website" - dependsOn getdownWebsite + dependsOn getdownWebsiteBuild def v = "v${JALVIEW_VERSION_UNDERSCORES}" def vDir = "${getdownArchiveDir}/${v}" @@ -2581,6 +2609,14 @@ task getdownArchiveBuild() { } } + // the wrapper scripts dir + if ( file("${getdownAppBaseDir}/${getdown_wrapper_script_dir}").exists() ) { + copy { + from "${getdownAppBaseDir}/${getdown_wrapper_script_dir}" + into "${getdownFullArchiveDir}/${getdown_wrapper_script_dir}" + } + } + getdownArchiveTxt.write(getdownArchiveTextLines.join("\n")) def vLaunchJvl = file(getdownVersionLaunchJvl) @@ -2807,6 +2843,9 @@ task installerFiles(type: com.install4j.gradle.Install4jTask) { projectFile = install4jConfFile + // run install4j with 4g + vmParameters = ["-Xmx4294967296"] + // create an md5 for the input files to use as version for install4j conf file def digest = MessageDigest.getInstance("MD5") digest.update(