You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2017/08/15 23:10:45 UTC

[34/50] [abbrv] geode git commit: GEODE-3423: Have Gradle set LOCAL_USER_ID

GEODE-3423: Have Gradle set LOCAL_USER_ID

- This is needed because Jenkins' Gradle job doesn't seem to provide the
  ability to pass environment variables in.


Project: http://git-wip-us.apache.org/repos/asf/geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/d295876d
Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/d295876d
Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/d295876d

Branch: refs/heads/feature/GEODE-3249
Commit: d295876d601300e52515193efcf5fd8549f10dbb
Parents: a600068
Author: Jens Deppe <jd...@pivotal.io>
Authored: Tue Aug 15 07:57:00 2017 -0700
Committer: Jens Deppe <jd...@pivotal.io>
Committed: Tue Aug 15 07:57:00 2017 -0700

----------------------------------------------------------------------
 gradle/docker.gradle | 38 ++++++++++++++++++++++++++++++++------
 1 file changed, 32 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/geode/blob/d295876d/gradle/docker.gradle
----------------------------------------------------------------------
diff --git a/gradle/docker.gradle b/gradle/docker.gradle
index d4828e4..b5a356f 100644
--- a/gradle/docker.gradle
+++ b/gradle/docker.gradle
@@ -38,6 +38,17 @@
  *                       The default is 'root'.
  */
 
+static def getWorkingDirArgIndex(args) {
+  def index = 0
+  for (arg in args) {
+    if (arg.equals('-w')) {
+      return index + 1
+    }
+    index++
+  }
+  return -1
+}
+
 def dockerConfig = {
   maxParallelForks = dunitParallelForks.toInteger()
 
@@ -76,17 +87,32 @@ def dockerConfig = {
       }
 
       // Remove JAVA_HOME and PATH env variables - they might not be the same as the container needs
-      args[javaHomeIdx] = 'JAVA_HOME_REMOVED='
-      args[pathIdx] = 'PATH_REMOVED='
+      if (javaHomeIdx > 0) {
+        args[javaHomeIdx] = 'JAVA_HOME_REMOVED='
+      }
+      if (pathIdx > 0) {
+        args[pathIdx] = 'PATH_REMOVED='
+      }
+
+      // Unfortunately this snippet of code is here and is required by dev-tools/docker/base/entrypoint.sh.
+      // This allows preserving the outer user inside the running container. Required for Jenkins
+      // and other environments. There doesn't seem to be a way to pass this environment variable
+      // in from a Jenkins Gradle job.
+      if (System.env['LOCAL_USER_ID'] == null) {
+        def username = System.getProperty("user.name")
+        def uid = ['id', '-u', username].execute().text.trim()
+        args.add(1, "-e" as String)
+        args.add(2, "LOCAL_USER_ID=${uid}" as String)
+      }
 
       // Infer the index of this invocation
       def matcher = (args[args.size - 1] =~ /.*Executor (\d*).*/)
 
-      args[3] = args[3] + matcher[0][1]
-      def workdir = new File(args[3])
-      // println "dockerize: making ${workdir}"
+      def pwdIndex = getWorkingDirArgIndex(args)
+      args[pwdIndex] = args[pwdIndex] + matcher[0][1]
+      def workdir = new File(args[pwdIndex])
       workdir.mkdirs()
-      // println args
+//      println args
 
       args
     }