FROM rust:1.60-slim
WORKDIR /sql_query_builder
COPY Cargo.* ./
# Create fake project to build the dependencies
RUN mkdir src && echo "fn main() {}" >> src/main.rs
# Install and compile dependencies for development
RUN cargo install cargo-watch
# Install and compile dependencies for tests
RUN cargo install rustfilt cargo-binutils &&\
rustup component add llvm-tools-preview &&\
cargo test --no-run &&\
RUSTFLAGS="-C instrument-coverage" cargo test --target-dir target/coverage --no-run
# # Remove targets builded from fake project
RUN rm -fr src
# Build
# docker build -f Dockerfile.dev -t sql_query_builder_base_image .
# Run
# docker run -it --rm \
# -v "$(pwd)/coverage:/sql_query_builder/coverage" \
# -v "$(pwd)/scripts:/sql_query_builder/scripts" \
# -v "$(pwd)/src:/sql_query_builder/src" \
# -v "$(pwd)/tests:/sql_query_builder/tests" \
# sql_query_builder_base_image \
# ./scripts/test_watch.sh