X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=build.gradle;h=d05e8659cd9916de13661d6bb8e8e809fa946096;hb=bba78613eb93924c43c35ed7b7d090c1c9c4e466;hp=7ad6f9965e560830bad4e1a2afa2f9cf72f4cf31;hpb=06eaa901379256f8db2114acb4e1bc75002b2527;p=jalview.git diff --git a/build.gradle b/build.gradle index 7ad6f99..d05e865 100644 --- a/build.gradle +++ b/build.gradle @@ -52,7 +52,7 @@ plugins { id 'application' id 'eclipse' id "com.diffplug.gradle.spotless" version "3.28.0" - id 'com.github.johnrengelman.shadow' version '4.0.3' + id 'com.github.johnrengelman.shadow' version '6.0.0' id 'com.install4j.gradle' version '10.0.3' id 'com.dorongold.task-tree' version '2.1.1' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree id 'com.palantir.git-version' version '0.13.0' apply false @@ -1783,6 +1783,27 @@ task testTask1(type: Test) { } } +task testTask2(type: Test) { + group = "Verification" + description = "Tests that need to be isolated from the main test run" + useTestNG() { + includeGroups name + excludeGroups testng_excluded_groups.split(",") + preserveOrder true + useDefaultListeners=true + } +} +task testTask3(type: Test) { + group = "Verification" + description = "Tests that need to be isolated from the main test run" + useTestNG() { + includeGroups name + excludeGroups testng_excluded_groups.split(",") + preserveOrder true + useDefaultListeners=true + } +} + /* insert more testTaskNs here -- change N to next digit or other string */ /* task testTaskN(type: Test) { @@ -1830,10 +1851,16 @@ tasks.withType(Test).matching {t -> t.getName().startsWith("testTask")}.all { te showExceptions true showCauses true showStackTraces true - + if (test_output) { + showStandardStreams true + } info.events = [ TestLogEvent.FAILED ] } + if (OperatingSystem.current().isMacOsX()) { + testTask.systemProperty "apple.awt.UIElement", "true" + testTask.environment "JAVA_TOOL_OPTIONS", "-Dapple.awt.UIElement=true" + } ignoreFailures = true // Always try to run all tests for all modules @@ -2129,12 +2156,33 @@ shadowJar { if (buildDist) { dependsOn makeDist } - from ("${jalviewDir}/${libDistDir}") { - include("*.jar") - } - manifest { - attributes "Implementation-Version": JALVIEW_VERSION, - "Application-Name": applicationName + + def jarFiles = fileTree(dir: "${jalviewDir}/${libDistDir}", include: "*.jar", exclude: "regex.jar").getFiles() + def groovyJars = jarFiles.findAll {it1 -> file(it1).getName().startsWith("groovy-swing")} + def otherJars = jarFiles.findAll {it2 -> !file(it2).getName().startsWith("groovy-swing")} + from groovyJars + from otherJars + + // we need to include the groovy-swing Include-Package for it to run in the shadowJar + doFirst { + def jarFileManifests = [] + groovyJars.each { jarFile -> + def mf = zipTree(jarFile).getFiles().find { it.getName().equals("MANIFEST.MF") } + if (mf != null) { + jarFileManifests += mf + } + } + + manifest { + attributes "Implementation-Version": JALVIEW_VERSION, "Application-Name": applicationName + from (jarFileManifests) { + eachEntry { details -> + if (!details.key.equals("Import-Package")) { + details.exclude() + } + } + } + } } duplicatesStrategy "INCLUDE" @@ -3360,7 +3408,7 @@ task jalviewjsTransferUnzipSwingJs { task jalviewjsTransferUnzipLib { - def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip") + def zipFiles = fileTree(dir: "${jalviewDir}/${jalviewjs_libjs_dir}", include: "*.zip").sort() doLast { zipFiles.each { file_zip -> @@ -3377,11 +3425,13 @@ task jalviewjsTransferUnzipLib { task jalviewjsTransferUnzipAllLibs { - dependsOn jalviewjsTransferUnzipSwingJs dependsOn jalviewjsTransferUnzipLib + dependsOn jalviewjsTransferUnzipSwingJs } + + task jalviewjsCreateJ2sSettings(type: WriteProperties) { group "JalviewJS" description "Create the alternative j2s file from the j2s.* properties" @@ -3436,7 +3486,7 @@ task jalviewjsSyncAllLibs (type: Sync) { include "**" } - // should this be exclude really ? + // should this be exclude really ? No, swingjs dir should be transferred last (and overwrite) duplicatesStrategy "INCLUDE" outputs.files outputFiles @@ -3669,7 +3719,7 @@ def jalviewjsCallCore(String name, FileCollection list, String prefixFile, Strin classpath = files(["${jalviewDir}/${jalviewjs_closure_compiler}"]) main = "com.google.javascript.jscomp.CommandLineRunner" jvmArgs = [ "-Dfile.encoding=UTF-8" ] - args = [ "--compilation_level", "SIMPLE_OPTIMIZATIONS", "--warning_level", "QUIET", "--charset", "UTF-8", "--js", jsfile, "--js_output_file", zjsfile ] + args = [ "--compilation_level", jalviewjs_closure_compiler_optimization_level, "--warning_level", "QUIET", "--charset", "UTF-8", "--js", jsfile, "--js_output_file", zjsfile ] maxHeapSize = "2g" msg = "\nRunning '"+commandLine.join(' ')+"'\n" @@ -4277,12 +4327,14 @@ task jalviewjsLaunchTest { execStdout = stdout execStderr = stderr } - def execArgs = [ + // macOS not running properly with timeout arguments + def execArgs = macOS ? [] : [ + "--virtual-time-budget=${timeoutms}", + ] + execArgs += [ "--no-sandbox", // --no-sandbox IS USED BY THE THORIUM APPIMAGE ON THE BUILDSERVER "--headless=new", "--disable-gpu", - "--timeout=${timeoutms}", - "--virtual-time-budget=${timeoutms}", "--user-data-dir=${jalviewDirAbsolutePath}/${jalviewjsBuildDir}/${jalviewjs_chromium_user_dir}", "--profile-directory=${jalviewjs_chromium_profile_name}", "--allow-file-access-from-files",