From c73f881c5d9de685c6a440563ab5491f0d1955e0 Mon Sep 17 00:00:00 2001 From: farthinder Date: Wed, 3 Apr 2024 17:59:27 +0200 Subject: [PATCH] 2.3.14 Release - Bugfixes and and test improvements (#35) * wip * Update docs * Do not add x86_64 archType to image tag * update groovy * Use correct groupid for new groovy version * WIP * Basic JSM and Bitbucket setup.groovy * Updated to use devstack 2.3.13 and latest SR Basic JSM Setup.groovy * Updated to use devstack 2.3.13 JsmContainer.groovy * Added new parameter/field jvmSupportRecommendedArgs * Reworked some of enableJvmDebug to work with jvmSupportRecommendedArgs JsmAndBitbucketH2Deployment.groovy * Now sets JSM to allow App upload using enableAppUpload() ExamplesTest.groovy * WIP, needs to be tested once this version of DevStack has been built pom.xml * Bumped docker-client 2024-02-10T12-30-00 -> 2024-03-16T11-35-00 * Various tweaks and bugfixes related to running the tests --------- Co-authored-by: Joni Lahtinen --- README.md | 7 +- examples/Basic JSM Setup.groovy | 2 +- examples/Basic JSM and Bitbucket setup.groovy | 4 +- pom.xml | 40 +++--- .../devstack/container/Container.groovy | 5 +- .../impl/HarborManagerContainer.groovy | 7 +- .../container/impl/JsmContainer.groovy | 25 +++- .../impl/JenkinsAndHarborDeployment.groovy | 2 +- .../impl/JsmAndBitbucketH2Deployment.groovy | 1 + .../deployment/impl/JsmH2Deployment.groovy | 2 + .../jira/scripts/CreateBitbucketLink.groovy | 2 +- .../com/eficode/devstack/DevStackSpec.groovy | 108 +++++++++++++++ .../impl/JsmH2DeploymentTest.groovy | 126 +++++++++++++++++- .../devstack/examples/ExamplesTest.groovy | 4 +- 14 files changed, 292 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 6cf3b87..dc7a5a5 100644 --- a/README.md +++ b/README.md @@ -155,4 +155,9 @@ mvn dependency:get -Dartifact=com.eficode:devstack-standalone:2.3.9-SNAPSHOT -Dr # Breaking Changes * 2.3.9 - * From now on two artifacts will be generated, devstack and devstack-standalone and the classifier standalone is deprecated \ No newline at end of file + * From now on two artifacts will be generated, devstack and devstack-standalone and the classifier standalone is deprecated + +# Requirements +The devstack packages are mainly built for JAVA 17 but should work with java 8+ and should work with groovy + * 3.x >= 3.0.17 + * 4.x >= 4.0.11 \ No newline at end of file diff --git a/examples/Basic JSM Setup.groovy b/examples/Basic JSM Setup.groovy index feb6706..8856081 100644 --- a/examples/Basic JSM Setup.groovy +++ b/examples/Basic JSM Setup.groovy @@ -1,5 +1,5 @@ @GrabResolver(name = 'github', root = 'https://github.com/eficode/DevStack/raw/packages/repository/') -@Grab(group = 'com.eficode', module = 'devstack', version = '2.2.0-SNAPSHOT-groovy-3.0.14', classifier = "standalone") +@Grab(group = 'com.eficode', module = 'devstack-standalone', version = '2.3.13') @Grab(group='org.slf4j', module='slf4j-simple', version='1.7.36', scope='test') @GrabConfig(systemClassLoader=true, initContextClassLoader=true) diff --git a/examples/Basic JSM and Bitbucket setup.groovy b/examples/Basic JSM and Bitbucket setup.groovy index a9ad91e..2c9f1f4 100644 --- a/examples/Basic JSM and Bitbucket setup.groovy +++ b/examples/Basic JSM and Bitbucket setup.groovy @@ -1,5 +1,5 @@ @GrabResolver(name = 'github', root = 'https://github.com/eficode/DevStack/raw/packages/repository/') -@Grab(group = 'com.eficode', module = 'devstack', version = '2.2.0-SNAPSHOT-groovy-3.0.14', classifier = "standalone") +@Grab(group = 'com.eficode', module = "devstack-standalone", version = '2.3.14') @Grab(group='org.slf4j', module='slf4j-simple', version='1.7.36', scope='test') @GrabConfig(systemClassLoader=true, initContextClassLoader=true) @@ -37,7 +37,7 @@ jsmAndBb.jsmContainer.setJvmMaxRam(4096) //Install JIRA App. //ScriptRunner is needed for setting up application link between JIRA and Bitbucket -jsmAndBb.jiraAppsToInstall = ["https://marketplace.atlassian.com/download/apps/6820/version/1005740":scriptRunnerLicense] +jsmAndBb.jiraAppsToInstall = ["https://marketplace.atlassian.com/download/apps/6820/version/1007940":scriptRunnerLicense] //Stop and remove if already existing jsmAndBb.stopAndRemoveDeployment() diff --git a/pom.xml b/pom.xml index d335926..2fd84eb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.eficode devstack - 2.3.13 + 2.3.14 jar DevStack @@ -14,26 +14,24 @@ A series of scripts for setting up common developer application suites - 11 - 11 - 3.0 - [3.0,4.0) - 2.4-M1-groovy-${groovy.major.version} + 11 + ${java.version} + ${java.version} + 4.0 + org.apache.groovy + 4.0.18 + 2.3-groovy-${groovy.major.version} 2.0.3-SNAPSHOT-groovy-3.0 0.0.3-SNAPSHOT-groovy-3.0 + 2.1.4 - - - - org.codehaus.groovy - groovy-all + ${groovy.groupId} + groovy ${groovy.version} - provided - pom @@ -41,15 +39,14 @@ jackson-dataformat-yaml 2.15.3 - - org.codehaus.groovy + ${groovy.groupId} groovy-json ${groovy.version} - org.codehaus.groovy + ${groovy.groupId} groovy-ant ${groovy.version} @@ -84,7 +81,7 @@ org.slf4j slf4j-simple - 2.0.0 + 2.0.1 @@ -102,7 +99,7 @@ com.eficode.atlassian jirainstancemanager - 2.1.1 + ${jirainstancemanager.version} @@ -110,7 +107,7 @@ de.gesellix docker-client - 2023-12-01T19-40-00 + 2024-03-16T11-35-00 @@ -207,10 +204,9 @@ - org.codehaus.groovy + ${groovy.groupId} groovy ${groovy.version} - runtime @@ -222,4 +218,4 @@ - \ No newline at end of file + diff --git a/src/main/groovy/com/eficode/devstack/container/Container.groovy b/src/main/groovy/com/eficode/devstack/container/Container.groovy index d00a663..8d8af5c 100644 --- a/src/main/groovy/com/eficode/devstack/container/Container.groovy +++ b/src/main/groovy/com/eficode/devstack/container/Container.groovy @@ -246,7 +246,7 @@ trait Container { * @return */ String getShortId() { - return getContainerId().substring(0,12) + return getContainerId()?.substring(0,12) } String getId() { @@ -838,8 +838,7 @@ trait Container { */ static ArrayList runCmdAndRm(String cmd, long timeoutMs, ArrayList mounts = [], String dockerHost = "", String dockerCertPath = "") { - - return runCmdAndRm(["/bin/sh", "-c", cmd], timeoutMs, mounts, dockerHost, dockerCertPath) + return this.runCmdAndRm(["/bin/sh", "-c", cmd], timeoutMs, mounts, dockerHost, dockerCertPath) } diff --git a/src/main/groovy/com/eficode/devstack/container/impl/HarborManagerContainer.groovy b/src/main/groovy/com/eficode/devstack/container/impl/HarborManagerContainer.groovy index 0b8d00b..015345c 100644 --- a/src/main/groovy/com/eficode/devstack/container/impl/HarborManagerContainer.groovy +++ b/src/main/groovy/com/eficode/devstack/container/impl/HarborManagerContainer.groovy @@ -176,7 +176,7 @@ class HarborManagerContainer extends DoodContainer { yamlFile.write( objectMapper.writeValueAsString(modifiedYml)) assert copyFileToContainer(yamlFile.absolutePath, installPath + "/harbor/"): "Error copying updated YAML file to container" - tmpDir.deleteDir() + tmpDir.toFile().deleteDir() log.info("\tFinished customizing docker-compose file") @@ -190,8 +190,9 @@ class HarborManagerContainer extends DoodContainer { boolean modifyInstallYml() { - Path tmpDir = Files.createTempDirectory("harbor-conf") - String tmpDirPath = tmpDir.toFile().absolutePath + File tmpDir = File.createTempDir("harbor-conf") + + String tmpDirPath = tmpDir.absolutePath ArrayList files = copyFilesFromContainer("${installPath}/harbor/harbor.yml.tmpl", tmpDirPath + "/") diff --git a/src/main/groovy/com/eficode/devstack/container/impl/JsmContainer.groovy b/src/main/groovy/com/eficode/devstack/container/impl/JsmContainer.groovy index 0eb7714..f3cb5eb 100644 --- a/src/main/groovy/com/eficode/devstack/container/impl/JsmContainer.groovy +++ b/src/main/groovy/com/eficode/devstack/container/impl/JsmContainer.groovy @@ -23,6 +23,7 @@ class JsmContainer implements Container { long jvmMaxRam = 6000 private String debugPort //Contains the port used for JVM debug + ArrayList jvmSupportRecommendedArgs = [] //Used for setting application properties: https://confluence.atlassian.com/adminjiraserver/setting-properties-and-options-on-startup-938847831.html JsmContainer(String dockerHost = "", String dockerCertPath = "") { if (dockerHost && dockerCertPath) { @@ -36,8 +37,18 @@ class JsmContainer implements Container { */ void enableJvmDebug(String portNr = "5005") { - assert !created: "Error, cant enable JVM Debug for a container that has already been crated" + assert !created: "Error, cant enable JVM Debug for a container that has already been created" debugPort = portNr + jvmSupportRecommendedArgs += ["-Xdebug", "-Xrunjdwp:transport=dt_socket,address=*:${debugPort},server=y,suspend=n"] + } + + /** + * Enables upload of Apps so that not only Marketplace apps can be installed + * See: https://jira.atlassian.com/browse/JRASERVER-77129 + */ + void enableAppUpload() { + assert !created: "Error, cant enable App Upload for a container that has already been created" + jvmSupportRecommendedArgs += ["-Dupm.plugin.upload.enabled=true"] } /** @@ -84,7 +95,6 @@ class JsmContainer implements Container { c.image = image c.hostname = containerName - c.env = ["JVM_MAXIMUM_MEMORY=" + jvmMaxRam + "m", "JVM_MINIMUM_MEMORY=" + ((jvmMaxRam / 2) as String) + "m", "ATL_TOMCAT_PORT=" + containerMainPort] + customEnvVar c.exposedPorts = [(containerMainPort + "/tcp"): [:]] @@ -94,15 +104,19 @@ class JsmContainer implements Container { if (debugPort) { h.portBindings.put((debugPort + "/tcp"), [new PortBinding("0.0.0.0", (debugPort))]) c.exposedPorts.put((debugPort + "/tcp"), [:]) - c.env.add("JVM_SUPPORT_RECOMMENDED_ARGS=-Xdebug -Xrunjdwp:transport=dt_socket,address=*:${debugPort},server=y,suspend=n".toString()) } h.mounts = this.preparedMounts } + c.env = ["JVM_MAXIMUM_MEMORY=" + jvmMaxRam + "m", "JVM_MINIMUM_MEMORY=" + ((jvmMaxRam / 2) as String) + "m", "ATL_TOMCAT_PORT=" + containerMainPort] + customEnvVar + + } + if (jvmSupportRecommendedArgs) { + containerCreateRequest.env.add("JVM_SUPPORT_RECOMMENDED_ARGS=" + jvmSupportRecommendedArgs.join(" ")) } return containerCreateRequest @@ -136,11 +150,16 @@ class JsmContainer implements Container { startContainer() } + return success } Volume getSnapshotVolume(String snapshotName = "") { + + if (!created) { + return null + } snapshotName = snapshotName ?: shortId + "-clone" ArrayList volumes = dockerClient.getVolumesWithName(snapshotName) diff --git a/src/main/groovy/com/eficode/devstack/deployment/impl/JenkinsAndHarborDeployment.groovy b/src/main/groovy/com/eficode/devstack/deployment/impl/JenkinsAndHarborDeployment.groovy index a92f0d0..c6af996 100644 --- a/src/main/groovy/com/eficode/devstack/deployment/impl/JenkinsAndHarborDeployment.groovy +++ b/src/main/groovy/com/eficode/devstack/deployment/impl/JenkinsAndHarborDeployment.groovy @@ -107,7 +107,7 @@ class JenkinsAndHarborDeployment implements Deployment { if (jenkinsFuture.done) { log.info("\tJenkins deployment finished successfully:" + jenkinsFuture.get()) - log.info("\t\tJenkins URL:" + jenkinsDeployment.baseUrl) + log.info("\t\tJenkins URL:" + getJenkinsDeployment().baseUrl) log.info("\t\tJenkins Admin PW:" + jenkinsContainer.initialAdminPassword) } diff --git a/src/main/groovy/com/eficode/devstack/deployment/impl/JsmAndBitbucketH2Deployment.groovy b/src/main/groovy/com/eficode/devstack/deployment/impl/JsmAndBitbucketH2Deployment.groovy index 53061e4..653ed21 100644 --- a/src/main/groovy/com/eficode/devstack/deployment/impl/JsmAndBitbucketH2Deployment.groovy +++ b/src/main/groovy/com/eficode/devstack/deployment/impl/JsmAndBitbucketH2Deployment.groovy @@ -123,6 +123,7 @@ class JsmAndBitbucketH2Deployment implements Deployment { assert bitbucketLicense: "Error no Bitbucket License has been setup" jsmH2Deployment.setJiraLicense(jiraLicense) + jsmH2Deployment.jsmContainer.enableAppUpload() bitbucketH2Deployment.setBitbucketLicence(bitbucketLicense) jsmH2Deployment.deploymentNetworkName = this.containerNetworkName diff --git a/src/main/groovy/com/eficode/devstack/deployment/impl/JsmH2Deployment.groovy b/src/main/groovy/com/eficode/devstack/deployment/impl/JsmH2Deployment.groovy index 1e6265d..8741468 100644 --- a/src/main/groovy/com/eficode/devstack/deployment/impl/JsmH2Deployment.groovy +++ b/src/main/groovy/com/eficode/devstack/deployment/impl/JsmH2Deployment.groovy @@ -112,6 +112,8 @@ class JsmH2Deployment implements Deployment{ if (useSnapshotIfAvailable && jsmContainer.created && jsmContainer.getSnapshotVolume()) { log.info("\tSnapshot is available, will restore that instead of setting up new JSM") assert jsmContainer.restoreJiraHomeSnapshot(): "Error resting snapshot for " + jsmContainer.shortId + log.info("\t\tSnapshot restored, waiting for jira to become responsive") + jiraRest.waitForJiraToBeResponsive(120) log.info("\t" * 2 + "Finished restoring JSM snapshot") return true } else { diff --git a/src/main/resources/com/eficode/devstack/deployment/jira/scripts/CreateBitbucketLink.groovy b/src/main/resources/com/eficode/devstack/deployment/jira/scripts/CreateBitbucketLink.groovy index 96d0870..eb602ba 100644 --- a/src/main/resources/com/eficode/devstack/deployment/jira/scripts/CreateBitbucketLink.groovy +++ b/src/main/resources/com/eficode/devstack/deployment/jira/scripts/CreateBitbucketLink.groovy @@ -1,4 +1,4 @@ -package com.eficode.atlassian.JiraShortcuts.test.resources.jiraLocalScripts +package com.eficode.devstack.deployment.jira.scripts /** * A script executed in JIRA by Scriptrunner diff --git a/src/test/groovy/com/eficode/devstack/DevStackSpec.groovy b/src/test/groovy/com/eficode/devstack/DevStackSpec.groovy index 33ba972..de61a8b 100644 --- a/src/test/groovy/com/eficode/devstack/DevStackSpec.groovy +++ b/src/test/groovy/com/eficode/devstack/DevStackSpec.groovy @@ -9,11 +9,14 @@ import de.gesellix.docker.remote.api.ContainerState import de.gesellix.docker.remote.api.ContainerSummary import de.gesellix.docker.remote.api.Network import org.apache.commons.io.FileUtils +import org.apache.commons.io.IOCase +import org.apache.commons.io.filefilter.NameFileFilter import org.slf4j.Logger import org.slf4j.LoggerFactory import spock.lang.Shared import spock.lang.Specification +import java.lang.reflect.Field import java.util.regex.Matcher class DevStackSpec extends Specification { @@ -243,4 +246,109 @@ class DevStackSpec extends Specification { } + + /** + * Starts in CWD and looks for pom.xml, traverse upwards in file tree until it is found. + * If "/" is reached, null is returned + * @return File representing project root dir + */ + static File getDevStackProjectRoot() { + + log.info("Detecting Project root based on pom.xml file") + File cwd = new File(".").getCanonicalFile() + File projectRoot = null + + while (!projectRoot){ + + log.debug("\tChecking if ${cwd.canonicalPath} is Project root") + File pomFile = cwd.listFiles().find {it.name == "pom.xml"} + + if (pomFile) { + log.debug("\t" * 2 + "Found root!") + projectRoot = cwd + }else { + log.debug("\t" * 2 + "This is not root, testing parent") + + cwd = cwd.parentFile + + if (!cwd) { + log.warn("\t" * 2 + cwd?.canonicalPath + " has no parent") + log.warn("\tCould not find Project root") + return null + } + } + + } + + + return projectRoot.getCanonicalFile() + } + + + Boolean runDevstackMvnClean() { + + File projectRoot = getDevStackProjectRoot() + + ArrayList mvnOut = runCmd("cd '${projectRoot.canonicalPath}' && mvn clean && echo Exit Status: \$?") + + return mvnOut.any {it.contains("Status: 0")} + + } + + File buildDevStackJar(Boolean buildStandalone = false, String extraPackageParemeters = "-DskipTests") { + + File projectRoot = getDevStackProjectRoot() + + String cmd = "cd '${projectRoot.canonicalPath}'" + + + if (buildStandalone) { + cmd += " mvn gplus:execute@execute && mvn clean && mvn package -f pom-standalone.xml $extraPackageParemeters" + }else { + cmd += " mvn clean && mvn package $extraPackageParemeters" + } + + log.info("Building devstack") + ArrayList mvnOut = runCmd(cmd) + + String jarPath = mvnOut.find {logRow -> + logRow.contains("Building jar") && + ! logRow.contains("-sources") && + logRow.endsWith(".jar") && + logRow.substring(logRow.lastIndexOf("/") + 1).startsWith("devstack-") && + (logRow.contains("standalone") || !buildStandalone) + } + if (!jarPath) { + mvnOut.each {log.warn(it)} + } + assert jarPath : "Error determining jar path after building DevStack" + jarPath = jarPath.substring(jarPath.indexOf("/")) + assert jarPath : "Error determining jar path after building DevStack" + + File jarFile = new File(jarPath) + log.info("\tBuilt jar:" + jarFile.canonicalPath) + + return jarFile + + + } + + static ArrayList runCmd(String cmd, ArrayList envs = []) { + + StringBuffer appenderStd = new StringBuffer() + //StringBuffer appenderErr = new StringBuffer() + + + Process proc = ["bash", "-c", cmd].execute(envs ?: null, null) + + proc.waitForProcessOutput(appenderStd, appenderStd) + + + + //Map out = ["stdOut": appenderStd.toString().split("\n"), "errOut": appenderErr.toString().split("\n")] + + + return appenderStd.toString().split("\n") + } + } \ No newline at end of file diff --git a/src/test/groovy/com/eficode/devstack/deployment/impl/JsmH2DeploymentTest.groovy b/src/test/groovy/com/eficode/devstack/deployment/impl/JsmH2DeploymentTest.groovy index 6092f95..cb4efaf 100644 --- a/src/test/groovy/com/eficode/devstack/deployment/impl/JsmH2DeploymentTest.groovy +++ b/src/test/groovy/com/eficode/devstack/deployment/impl/JsmH2DeploymentTest.groovy @@ -1,5 +1,6 @@ package com.eficode.devstack.deployment.impl +import com.eficode.atlassian.jiraInstanceManager.JiraInstanceManagerRest import com.eficode.devstack.DevStackSpec import org.slf4j.LoggerFactory import spock.lang.Shared @@ -7,6 +8,9 @@ import spock.lang.Shared class JsmH2DeploymentTest extends DevStackSpec { + @Shared + File srLicenseFile = new File(System.getProperty("user.home") + "/.licenses/jira/sr.license") + def setupSpec() { @@ -45,14 +49,128 @@ class JsmH2DeploymentTest extends DevStackSpec { jsmDep.jsmContainer.inspectContainer().networkSettings.ports.find { it.key == "$port/tcp" } //Make sure websudo was disabled - jsmDep.jsmContainer.runBashCommandInContainer("cat jira-config.properties").find {it == "jira.websudo.is.disabled=true"} - jsmDep.jsmContainer.containerLogs.find {it.matches(".*jira.websudo.is.disabled.*:.*true.*")} + jsmDep.jsmContainer.runBashCommandInContainer("cat jira-config.properties").find { it == "jira.websudo.is.disabled=true" } + jsmDep.jsmContainer.containerLogs.find { it.matches(".*jira.websudo.is.disabled.*:.*true.*") } + + + where: + baseurl | port | dockerHost | certPath + "http://localhost" | "80" | "" | "" + + } + + def "Test DevStack In ScriptRunner"(String srVersion, String packageParameters, boolean cleanup = false) { + + setup: + + JsmH2Deployment jsmDep = new JsmH2Deployment("http://jira.localhost:8080") + disableCleanup = !cleanup + + + jsmDep.setJiraLicense(new File(System.getProperty("user.home") + "/.licenses/jira/jsm.license").text) + + assert jsmDep.setupDeployment(true, true): "Error setting up or snapshotting JSM" + JiraInstanceManagerRest jiraRest = jsmDep.jiraRest + + jiraRest.waitForJiraToBeResponsive(240) + assert jiraRest.installScriptRunner(srLicenseFile.text, srVersion): "Error installing SR version $srVersion" + + assert jiraRest.waitForSrToBeResponsive(60): "Timed out waiting for SR to become responsive" + when: + + log.info("Building DevStack jar") + File devstackJar = buildDevStackJar(true, packageParameters) + log.debug("\tGot DevStack jar:" + devstackJar.name) + jsmDep.jsmContainer.copyFileToContainer(devstackJar.canonicalPath, "/var/atlassian/application-data/jira/tmp/") + + String containerJarPath = "/var/atlassian/application-data/jira/tmp/$devstackJar.name" + + Map> srOut = jiraRest.executeLocalScriptFile(""" + + File jarFile = new File("$containerJarPath") + assert jarFile.exists() : "Could not find jar file in JIRA container" + + this.class.classLoader.addURL(jarFile.toURI().toURL()); + + + def jsmDeployment = Class.forName("com.eficode.devstack.deployment.impl.JsmH2Deployment").newInstance("http://jira.localhost:8080"); + String userKey = jsmDeployment.jiraRest.getUserKey("admin") + log.error("Current userKey is:" + jsmDeployment.jiraRest.getUserKey("admin")) + //throw new InputMismatchException("Current userKey is:" + userKey) + return userKey + + + """ + ) + + then: + srOut.log.any { it.toString().contains("Current userKey is:JIRAUSER10000") } + + cleanup: + + jsmDep.jsmContainer.runBashCommandInContainer("rm '$containerJarPath'", 10, "root") + assert runDevstackMvnClean(): "Error cleaning DevStack maven project" + runCmd("cd ${devStackProjectRoot} && rm ") where: - baseurl | port | dockerHost | certPath - "http://localhost" | "80" | "" | "" + srVersion | packageParameters | cleanup + "latest" | "-DskipTests" | false + "latest" | "-Dgroovy.version=4.0.18 -DskipTests" | false + "latest" | "-Dgroovy.version=4.0.16 -DskipTests" | false + "latest" | "-Dgroovy.version=4.0.14 -DskipTests" | false + "latest" | "-Dgroovy.version=4.0.12 -DskipTests" | false + "latest" | "-Dgroovy.version=4.0.11 -DskipTests" | false + "latest" | "-Dgroovy.version=3.0.20 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "latest" | "-Dgroovy.version=3.0.18 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "latest" | "-Dgroovy.version=3.0.17 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | true + + /* + "8.20.0" | "-DskipTests" | false + "8.20.0" | "-Dgroovy.version=4.0.18 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=4.0.16 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=4.0.14 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=4.0.12 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=4.0.11 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=3.0.20 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=3.0.18 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.20.0" | "-Dgroovy.version=3.0.17 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + + "8.10.0" | "-DskipTests" | false + "8.10.0" | "-Dgroovy.version=4.0.18 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=4.0.16 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=4.0.14 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=4.0.12 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=4.0.11 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=3.0.20 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=3.0.18 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.10.0" | "-Dgroovy.version=3.0.17 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + + + "8.0.0" | "-DskipTests" | false + "8.0.0" | "-Dgroovy.version=4.0.18 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=4.0.16 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=4.0.14 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=4.0.12 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=4.0.11 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=3.0.20 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=3.0.18 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "8.0.0" | "-Dgroovy.version=3.0.17 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + + + "7.10.0" | "-DskipTests" | false + "7.10.0" | "-Dgroovy.version=4.0.18 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=4.0.16 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=4.0.14 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=4.0.12 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=4.0.11 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=3.0.20 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=3.0.18 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | false + "7.10.0" | "-Dgroovy.version=3.0.17 -Dgroovy.groupId=org.codehaus.groovy -Dgroovy.major.version=3.0 -DskipTests" | true + + */ + } diff --git a/src/test/groovy/com/eficode/devstack/examples/ExamplesTest.groovy b/src/test/groovy/com/eficode/devstack/examples/ExamplesTest.groovy index 2520d46..6df0120 100644 --- a/src/test/groovy/com/eficode/devstack/examples/ExamplesTest.groovy +++ b/src/test/groovy/com/eficode/devstack/examples/ExamplesTest.groovy @@ -54,7 +54,7 @@ class ExamplesTest extends DevStackSpec{ groovyContainer.prepareBindMount("/var/run/docker.sock", "/var/run/docker.sock") //Mount docker socket from host groovyContainer.containerDefaultNetworks = ["jsm"] // Make sure groovy container is on the same network as other containers - groovyContainer.setGroovyVersion("3.0.14") + groovyContainer.setGroovyVersion("4.0.18") groovyContainer.stopAndRemoveContainer() groovyContainer.createSleepyContainer() groovyContainer.startContainer() @@ -92,7 +92,7 @@ class ExamplesTest extends DevStackSpec{ groovyContainer.prepareBindMount("/var/run/docker.sock", "/var/run/docker.sock") //Mount docker socket from host groovyContainer.containerDefaultNetworks = ["jsm_and_bitbucket"] // Make sure groovy container is on the same network as other containers - groovyContainer.setGroovyVersion("3.0.14") + groovyContainer.setGroovyVersion("4.0.18") groovyContainer.stopAndRemoveContainer() groovyContainer.createSleepyContainer() groovyContainer.startContainer()