From 24ba0d93c704719f719ce698ad69c75132210205 Mon Sep 17 00:00:00 2001
From: Vanessa Sochat <vsochat@stanford.edu>
Date: Sun, 8 Sep 2019 13:02:55 -0400
Subject: [PATCH] test building akin to azure-pipelines (without release) to
 hopefully shorten circleci builds

Signed-off-by: Vanessa Sochat <vsochat@stanford.edu>
---
 .circleci/config.yml      | 16 +---------------
 docker/Dockerfile         |  1 +
 docker/Dockerfile.nu-base | 22 +++++++++++++++-------
 3 files changed, 17 insertions(+), 22 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 80dd80017d..e1c665e444 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -9,15 +9,6 @@ version: 2.1
 
 commands:
 
-  check_token:
-    description: Check that QUAY_TOKEN is provided in environment
-    steps:
-      - run: 
-          if [[ -z "${QUAY_TOKEN}" ]]; then
-            echo "QUAY_TOKEN is undefined. Add to CircleCI environment to continue."
-            exit 1;
-          fi
-
   pull_cache:
     description: Pulls Quay.io docker images usable for our cache
     steps:
@@ -46,7 +37,6 @@ workflows:
               ignore: 
                 - master
           before_build:
-            - check_token
             - pull_cache
           after_build:
             - run:
@@ -76,7 +66,6 @@ workflows:
             tags:
               only: /^v.*/
           before_build:
-            - check_token
             - pull_cache
           after_build:
             - run:
@@ -90,7 +79,6 @@ workflows:
                    echo "Version for Docker tag is ${DOCKER_TAG}"
                    docker tag quay.io/nushell/nu-base:latest quay.io/nushell/nu-base:${DOCKER_TAG}
                    docker tag quay.io/nushell/nu:latest quay.io/nushell/nu:${DOCKER_TAG}
-                   docker login -u="nushell+circleci" -p="${QUAY_TOKEN}" quay.io
                    docker push quay.io/nushell/nu-base
                    docker push quay.io/nushell/nu
 
@@ -105,9 +93,8 @@ workflows:
           registry: quay.io
           tag: devel
           dockerfile: docker/Dockerfile.nu-base
-          extra_build_args: --cache-from=quay.io/nushell/nu-base:latest,quay.io/nushell/nu:latest
+          extra_build_args: --cache-from=quay.io/nushell/nu-base:latest,quay.io/nushell/nu:latest --build-arg RELEASE=true
           before_build:
-            - check_token
             - pull_cache
           filters:
             branches:
@@ -120,6 +107,5 @@ workflows:
             - run:
                 name: Publish Development Docker Tags
                 command: |
-                   docker login -u="nushell+circleci" -p="${QUAY_TOKEN}" quay.io
                    docker push quay.io/nushell/nu-base:devel
                    docker push quay.io/nushell/nu:devel
diff --git a/docker/Dockerfile b/docker/Dockerfile
index d8bc40f657..fa089e77d2 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -3,3 +3,4 @@ FROM quay.io/nushell/nu-base:${FROMTAG} as base
 FROM rust:1.37-slim
 COPY --from=base /usr/local/bin/nu /usr/local/bin/nu
 ENTRYPOINT ["nu"]
+CMD ["-l", "info"]
diff --git a/docker/Dockerfile.nu-base b/docker/Dockerfile.nu-base
index b322efb5b2..faba0213a5 100644
--- a/docker/Dockerfile.nu-base
+++ b/docker/Dockerfile.nu-base
@@ -1,4 +1,4 @@
-FROM rust:1.37-slim
+FROM ubuntu:16.04
 
 # docker build -f docker/Dockerfile.nu-base -t nushell/nu-base .
 # docker run -it nushell/nu-base
@@ -7,12 +7,20 @@ ENV DEBIAN_FRONTEND noninteractive
 RUN apt-get update && apt-get install -y libssl-dev \
     libxcb-composite0-dev \
     libx11-dev \
-    pkg-config
-
-RUN USER=root cargo new --bin /code
+    pkg-config \
+    curl
 
+ARG RELEASE=false
 WORKDIR /code
-ADD . /code
-RUN cargo build --release && cargo run --release
-RUN cp target/release/nu /usr/local/bin
+COPY ./rust-toolchain ./rust-toolchain
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --default-toolchain `cat rust-toolchain`
+ENV PATH=/root/.cargo/bin:$PATH
+COPY . /code
+RUN echo "##vso[task.prependpath]/root/.cargo/bin" && \
+    rustc -Vv && \
+    if $RELEASE; then cargo build --release && cargo run --release; \
+                   cp target/release/nu /usr/local/bin; \   
+                 else cargo build; \
+                   cp target/debug/nu /usr/local/bin; fi;
 ENTRYPOINT ["nu"]
+CMD ["-l", "info"]