diff --git a/.github/workflows/publish-maven-package.yml b/.github/workflows/publish-maven-package.yml
index cb7efc1..b533ee5 100644
--- a/.github/workflows/publish-maven-package.yml
+++ b/.github/workflows/publish-maven-package.yml
@@ -24,10 +24,6 @@ jobs:
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file
- - name: Compile Groovy code and generate sources
- run: mvn gplus:compile generate-sources package
-
-
#Manually first (once) set up an orphaned branch:
# git switch --orphan packages
# git commit --allow-empty -m "Initial commit on packages branch"
@@ -35,15 +31,21 @@ jobs:
- name: Install Package to packages branch
run: |
- MAINJAR=$(ls -1 target/*.jar | grep -v sources\.jar)
- SOURCEJAR=$(ls -1 target/*.jar | grep sources\.jar | grep -v test)
- VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
- echo Main JAR: $MAINJAR
- echo Source JAR: $SOURCEJAR
- echo Version: $VERSION
- mkdir -p repository
- echo Installing JAR in repository directory
- mvn install:install-file -DpomFile=pom.xml -DlocalRepositoryPath=repository/ -Dfile="$MAINJAR" -Dsources="$SOURCEJAR" -DgeneratePom=true -DcreateChecksum=true
+ mkdir localm2
+ mkdir -p repository/com/eficode/devstack
+
+ echo Installing parent pom file
+ mvn install:install-file -Dpackaing=pom -Dfile=pom.xml -DpomFile=pom.xml -Dmaven.repo.local=localm2/ -DcreateChecksum=true
+
+ echo Compiling, Packaging and Installing Groovy 2.5 version of library to local m2 directory
+ mvn install -f pom-2.5.xml -Dmaven.repo.local=localm2/ -DcreateChecksum=true
+
+ echo Compiling, Packaging and Installing Groovy 3.0 version of library to local m2 directory
+ mvn install -f pom-3.0.xml -Dmaven.repo.local=localm2/ -DcreateChecksum=true
+
+ echo Copying the new JAR files to repository which will be added to git branch "packages"
+ rsync -avh --checksum localm2/com/eficode/devstack repository/com/eficode/devstack
+
git config user.name github-actions
git config user.email github-actions@github.com
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 9ca2fe0..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 40a6498..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index f960bc1..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom-2.5.xml b/pom-2.5.xml
new file mode 100644
index 0000000..17a8186
--- /dev/null
+++ b/pom-2.5.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ DevStack for Groovy 2.5
+ devstack
+ 1.1.0-SNAPSHOT-groovy-2.5
+ jar
+
+
+
+ com.eficode
+ devstack
+ 1.1.0-SNAPSHOT
+ pom.xml
+
+
+
+
+
+ org.codehaus.groovy
+ groovy
+ 2.5.18
+
+
+ org.spockframework
+ spock-core
+ 2.2-groovy-2.5
+ test
+
+
+
+
+
+ com.eficode.atlassian
+ bitbucketinstancemanager
+ 0.0.3-SNAPSHOT-groovy-2.5
+ standalone
+
+
+
+
+
+
+
+ 11
+ 11
+
+
+
\ No newline at end of file
diff --git a/pom-3.0.xml b/pom-3.0.xml
new file mode 100644
index 0000000..a9819ed
--- /dev/null
+++ b/pom-3.0.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ DevStack for Groovy 3
+ devstack
+ 1.1.0-SNAPSHOT-groovy-3.0
+ jar
+
+
+
+ com.eficode
+ devstack
+ 1.1.0-SNAPSHOT
+ pom.xml
+
+
+
+
+
+ org.codehaus.groovy
+ groovy
+ 3.0.11
+
+
+ org.spockframework
+ spock-core
+ 2.2-groovy-3.0
+ test
+
+
+
+
+
+ com.eficode.atlassian
+ bitbucketinstancemanager
+ 0.0.3-SNAPSHOT-groovy-2.5
+ standalone
+
+
+
+
+
+
+
+ 11
+ 11
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index ff9251e..d7f32e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,39 +6,34 @@
com.eficode
devstack
- 1.0.6-SNAPSHOT
+ 1.1.0-SNAPSHOT
+
+ DevStack - Parent pom
+
A series of scripts for setting up common developer application suites
+ pom
-
-
- github
- Eficode Devstack
- https://maven.pkg.github.com/eficode/devStack
-
-
-
+
+
+
org.codehaus.groovy
- groovy-all
+ groovy
3.0.11
- pom
-
-
- org.spockframework
- spock-core
- 2.1-groovy-3.0
+ compile
+
- de.gesellix
- docker-client
- 2022-05-24T07-36-00
+ org.slf4j
+ slf4j-api
+ 2.0.1
org.slf4j
slf4j-simple
- 1.7.36
+ 2.0.0
@@ -52,30 +47,107 @@
commons-io
2.11.0
+
- com.konghq
- unirest-java
- 3.13.6
- standalone
+ com.eficode.atlassian
+ jirainstancemanager
+ 1.1.0-SNAPSHOT
+
- com.eficode.atlassian
- jirainstancemanger
- 1.0.1-SNAPSHOT
+ de.gesellix
+ docker-client
+ 2022-07-28T22-55-00
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.9.0
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ 5.9.0
+ test
+
+
+
eficode-github-jiraManagerRest
- https://github.com/eficode/JiraInstanceMangerRest/raw/packages/repository/
+ https://github.com/eficode/JiraInstanceManagerRest/raw/packages/repository/
+
+
+ eficode-github-BitbucketInstanceManagerRest
+ https://github.com/eficode/BitbucketInstanceManagerRest/raw/packages/repository/
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.4.0
+
+
+ package
+
+ shade
+
+
+
+ true
+
+
+ standalone
+
+
+
+ org.codehaus.groovy:groovy
+ com.google.code.gson:gson
+ org.apache.httpcomponents
+ commons-*
+
+
+
+
+
+
+
+ true
+
+
+
+
+
org.apache.maven.plugins
maven-source-plugin
@@ -100,8 +172,12 @@
addSources
addTestSources
+ generateStubs
compile
+ generateTestStubs
compileTests
+ removeStubs
+ removeTestStubs
@@ -125,9 +201,27 @@
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M7
+
+
+ **/*Spec.class
+ **/*Test.java
+
+ true
+
+
+
11
11
diff --git a/src/main/groovy/com/eficode/devstack/container/Container.groovy b/src/main/groovy/com/eficode/devstack/container/Container.groovy
index 518f359..c9bdffc 100644
--- a/src/main/groovy/com/eficode/devstack/container/Container.groovy
+++ b/src/main/groovy/com/eficode/devstack/container/Container.groovy
@@ -1,12 +1,18 @@
package com.eficode.devstack.container
import de.gesellix.docker.client.DockerClientImpl
+import de.gesellix.docker.client.network.ManageNetworkClient
import de.gesellix.docker.engine.DockerClientConfig
import de.gesellix.docker.engine.DockerEnv
import de.gesellix.docker.engine.EngineResponse
import de.gesellix.docker.remote.api.ContainerInspectResponse
+import de.gesellix.docker.remote.api.ContainerState
+import de.gesellix.docker.remote.api.ContainerSummary
+import de.gesellix.docker.remote.api.EndpointSettings
import de.gesellix.docker.remote.api.IdResponse
import de.gesellix.docker.remote.api.Mount
+import de.gesellix.docker.remote.api.Network
+import de.gesellix.docker.remote.api.NetworkCreateRequest
import de.gesellix.docker.remote.api.core.ClientException
import de.gesellix.docker.remote.api.core.Frame
import de.gesellix.docker.remote.api.core.StreamCallback
@@ -27,19 +33,22 @@ import java.time.Duration
trait Container {
- static Logger log = LoggerFactory.getLogger(Container.class)
- static DockerClientImpl dockerClient = new DockerClientImpl()
+ Logger log = LoggerFactory.getLogger(this.class)
+ DockerClientImpl dockerClient = new DockerClientImpl()
+ ManageNetworkClient networkClient = dockerClient.getManageNetwork() as ManageNetworkClient
abstract String containerName
abstract String containerMainPort
+ String containerNetworkName = "bridge"
+ String defaultShell = "/bin/bash"
String containerId
ArrayList mounts = []
- void prepareBindMount(String sourceAbs, String target, boolean readOnly = true){
- assert !isCreated() : "Bind mounts cant be prepared for already created container"
+ void prepareBindMount(String sourceAbs, String target, boolean readOnly = true) {
+ assert !isCreated(): "Bind mounts cant be prepared for already created container"
this.mounts.add(
- new Mount().tap{m ->
+ new Mount().tap { m ->
m.source = sourceAbs
m.target = target
m.readOnly = readOnly
@@ -51,8 +60,12 @@ trait Container {
+ abstract String createContainer(ArrayList cmd, ArrayList entrypoint)
+
abstract String createContainer()
+ abstract boolean runOnFirstStartup()
+
/**
* Replaced the default docker connection (local) with a remote, secure one
@@ -67,6 +80,9 @@ trait Container {
dockerEnv.setTlsVerify("1")
dockerConfig.apply(dockerEnv)
dockerClient = new DockerClientImpl(dockerConfig)
+ networkClient = dockerClient.getManageNetwork() as ManageNetworkClient
+
+
return ping()
}
@@ -85,8 +101,8 @@ trait Container {
boolean isCreated() {
- ArrayList