message: Test linux CI substeps on different jenkins workers.
diff: @@ -232,7 +232,40 @@ def linuxTesting(file, env_name, run_interoperability_tests, network_name) {
  }
  }
  },
  - "${env_name}-java-test" : {
  + "${env_name}-java-test" : { linuxModuleTesting(env_name, network_name, linuxJavaTesting) },
  + "${env_name}-python-test" : { linuxModuleTesting(env_name, network_name, linuxPythonTesting) },
  + "${env_name}-cli-test" : { linuxModuleTesting(env_name, network_name, linuxCLITesting) }
  + ])
  + }
  + finally {
  + closePool(env_name, network_name, poolInst)
  + }
  +}
  +
  +def linuxModuleTesting(env_name, network_name, module_tester) {
  + node('ubuntu') {
  + def poolInst
  + try {
  + echo "${env_name} Test: Checkout csm"
  + checkout scm
  +
  + poolInst = openPool(env_name, network_name)
  +
  + def testEnv
  +
  + dir('libindy') {
  + echo "${env_name} Libindy Test: Build docker image"
  + testEnv = dockerBuild('libindy', file)
  + }
  +
  + module_tester(env_name, network_name, testEnv)
  + } finally {
  + closePool(env_name, network_name, poolInst)
  + }
  + }
  +}
  +
  +def linuxJavaTesting(env_name, network_name, testEnv) {
  unstash name: 'LibindyJavaSO'
  dir('wrappers/java') {
  testEnv.inside("--network=${network_name}") {
  @@ -241,8 +274,9 @@ def linuxTesting(file, env_name, run_interoperability_tests, network_name) {
  sh "RUST_LOG=trace TEST_POOL_IP=10.0.0.2 mvn clean test"
  }
  }
  - },
  - "${env_name}-python-test" : {
  +}
  +
  +def linuxPythonTesting(env_name, network_name, testEnv) {
  unstash name: 'LibindyPythonSO'
  dir('wrappers/python') {
  testEnv.inside("--network=${network_name}") {
  @@ -254,8 +288,9 @@ def linuxTesting(file, env_name, run_interoperability_tests, network_name) {
  '''
  }
  }
  - },
  - "${env_name}-cli-test" : {
  +}
  +
  +def linuxCLITesting(env_name, network_name, testEnv) {
  unstash name: 'LibindyCliSO'
  dir('cli') {
  testEnv.inside("--network=${network_name} -u 0:0") {
  @@ -269,12 +304,6 @@ def linuxTesting(file, env_name, run_interoperability_tests, network_name) {
  }
  }
  }
  - ])
  - }
  - finally {
  - closePool(env_name, network_name, poolInst)
  - }
  -}
  def getBuildPoolVerOptions(pool_type, plenum_ver, anoncreds_ver, node_ver) {
  if (pool_type != null && plenum_ver != null && anoncreds_ver != null && node_ver != null) {
  