mirror of
https://github.com/nushell/nushell.git
synced 2024-12-22 23:23:12 +01:00
Merge pull request #622 from vsoch/test/shorter-docker-builds
Building akin to azure-pipelines to shorten CircleCI builds
This commit is contained in:
commit
4ce6a9c9f7
@ -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
|
||||
|
@ -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"]
|
||||
|
@ -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"]
|
||||
|
Loading…
Reference in New Issue
Block a user