Fixing issues with latest changes to docker autoconfig (#208)

* fixing autoconfig issue

* fixing release script

* add new test to presubmit (exercises pulling project from github and grabbing several autoconfig directories) 
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index e7422ad..81bdb7c 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -7,6 +7,7 @@
     - "//tests/config:ubuntu-xenial-autoconfig_test"
     - "//tests/config:ubuntu-xenial-custom-bazel-rc-version-autoconfig_test"
     - "//tests/config:debian8_clang_autoconfig_test"
+    - "//tests/config:external-repo-autoconfig_test"
     - "//configs/debian8_clang:default-debian8-clang-0.3.0-bazel_0.16.1-autoconfig_test"
     - "//configs/debian8_clang:msan-debian8-clang-0.3.0-bazel_0.16.1-autoconfig_test"
     - "//configs/ubuntu16_04_clang:default-ubuntu16_04-clang-1.0-bazel_0.16.1-autoconfig_test"
diff --git a/release/cc/execute_targets.py b/release/cc/execute_targets.py
index bc54db0..d255b88 100644
--- a/release/cc/execute_targets.py
+++ b/release/cc/execute_targets.py
@@ -83,8 +83,14 @@
       # Generate config directory.
       os.makedirs(config.get_config_dir())
 
-      command = ("bazel run --define=DOCKER_AUTOCONF_OUTPUT={OUTPUT_DIR} "
-                 "//{PACKAGE}:{TARGET}").format(
+      command = ("bazel build //{PACKAGE}:{TARGET}").format(
+                     PACKAGE=container_configs.package,
+                     TARGET=target)
+      print("\nExecuting command: %s\n" % command)
+      subprocess.check_call(shlex.split(command))
+
+      command = ("cp ./bazel-out/k8-fastbuild/bin/{PACKAGE}/{TARGET}_outputs.tar "
+                 "{OUTPUT_DIR}/").format(
                      OUTPUT_DIR=TMP_DIR,
                      PACKAGE=container_configs.package,
                      TARGET=target)
@@ -92,7 +98,7 @@
       subprocess.check_call(shlex.split(command))
 
       # Extract toolchain configs.
-      tar_path = os.path.join(TMP_DIR, "%s.tar" % target)
+      tar_path = os.path.join(TMP_DIR, "%s_outputs.tar" % target)
       tar = tarfile.open(tar_path)
 
       for config_file in CONFIG_FILES:
diff --git a/rules/docker_config.bzl b/rules/docker_config.bzl
index 02eee47..90489f5 100644
--- a/rules/docker_config.bzl
+++ b/rules/docker_config.bzl
@@ -195,7 +195,7 @@
     for config_repo in ctx.attr.config_repos:
         src_dir = "$(bazel info output_base)/" + _EXTERNAL_FOLDER_PREFIX + config_repo
         copy_cmd.append("cp -dr " + src_dir + " " + "/")
-    copy_cmd.append("tar -cf /outputs.tar /" + " ".join(ctx.attr.config_repos))
+    copy_cmd.append("tar -cf /outputs.tar /" + " /".join(ctx.attr.config_repos))
     output_copy_cmd = " && ".join(copy_cmd)
 
     # Command to run autoconfigure targets.
diff --git a/tests/config/BUILD b/tests/config/BUILD
index 9d880a0..2740b96 100644
--- a/tests/config/BUILD
+++ b/tests/config/BUILD
@@ -109,6 +109,19 @@
 )
 
 docker_toolchain_autoconfig(
+    name = "external-repo-autoconfig",
+    base = ":rbe-test-xenial-with-pkgs.tar",
+    config_repos = [
+        "local_config_sh",
+        "local_config_cc",
+    ],
+    env = gcc_env(),
+    git_repo = "https://github.com/bazelbuild/bazel",
+    tags = ["manual"],
+    test = True,
+)
+
+docker_toolchain_autoconfig(
     name = "ubuntu-xenial-bazel-head-autoconfig",
     base = ":rbe-test-xenial-with-pkgs.tar",
     env = gcc_env(),