mirror of
https://github.com/status-im/libp2p-test-plans.git
synced 2025-01-09 22:35:51 +00:00
072d351a5f
* ping/go: fix composition name * ping/rust: introduce the ping/rust test * Showcase version selection through features Can be run with `cargo check --features libp2pv0450` or `cargo check --features libp2pv0440`. * Peer programming session * ping/rust: experiment with master & current groups * ping/rust/src/main: Simplify import across versions * ping/rust/src/main: Remove commented out code * ping/rust/src/main: Clean up * ping/rust/Dockerfile: Update crates.io index in separate step Potentially allows caching. * ping/rust/Dockerfile: Don't both build and install Building the binary in release mode is enough. * ping/rust/src/main: Clean up log lines * ping/rust: Implement iterations with latency * ping/rust/src/main: Extract signal and wait logic into fn * ping/rust/Dockerfile: import caching fixes * ping/: add cross-version composition * ping/rust: add json payloads fix * ping/rust: match iterations id with go * ping/rust/Dockerfile: improve caching * ci: introduce workflow ping-interop-rust * ping/interop: update latest versions * ping/_compositions: add full ping interop * ci: resolve git reference to sha * ping/rust/Dockerfile: drop cargo output * ping/rust: drop version indirection * ping/rust/Dockerfile: fix features to support caching * ping/rust/Dockerfile: do not cache the rewritten package * ping/_compositions/*: use concurrent_builds * ping/_compositions/*: drop test_instances count * ci: build composition then run * ping: introduce InteropTarget option * ci: fix interop target & build * ping/_compositions/*: introduce load_resource * ci: 10 minutes timeout for the run step * README: add update instruction for rust & clean go * ping/rust/Dockerfile: add protocol buffer compiler * ping/rust/Cargo.lock: cargo update packages * .github: increase testground timeout Co-authored-by: Max Inden <mail@max-inden.de>
46 lines
1.5 KiB
Docker
46 lines
1.5 KiB
Docker
FROM rust:1.62-bullseye as builder
|
|
WORKDIR /usr/src/testplan
|
|
|
|
RUN apt-get update && apt-get install -y cmake protobuf-compiler
|
|
|
|
ARG PLAN_PATH="./"
|
|
|
|
# Cache dependencies between test runs, see testground examples.
|
|
RUN mkdir -p ./plan/src/
|
|
RUN echo "fn main() { println!(\"If you see this message, you may want to clean up the target directory or the Docker build cache.\") }" > ./plan/src/main.rs
|
|
COPY ./plan/${PLAN_PATH}/Cargo.lock ./plan/${PLAN_PATH}/Cargo.toml ./plan/
|
|
|
|
RUN cd ./plan/ && \
|
|
cargo update --dry-run && \
|
|
cargo fetch && \
|
|
# use a default feature to rely on docker caching.
|
|
cargo build --release --features "libp2pv0450"
|
|
|
|
ARG CARGO_PATCH=""
|
|
ARG CARGO_REMOVE=""
|
|
|
|
RUN if [ ! -z "${CARGO_REMOVE}" ]; then sed -i "s/^${CARGO_REMOVE}.*//" ./plan/Cargo.toml; fi
|
|
RUN echo "${CARGO_PATCH}" >> ./plan/Cargo.toml
|
|
|
|
# Backup Cargo file to preserve patches.
|
|
RUN cp ./plan/Cargo.toml ./plan/Cargo.lock /tmp/
|
|
|
|
COPY ./plan/${PLAN_PATH} ./plan
|
|
|
|
# This is in order to make sure `main.rs`s mtime timestamp is updated to avoid the dummy `main`
|
|
# remaining in the release binary.
|
|
# https://github.com/rust-lang/cargo/issues/9598
|
|
RUN touch ./plan/src/main.rs
|
|
|
|
RUN mv /tmp/Cargo.toml /tmp/Cargo.lock ./plan
|
|
|
|
ARG CARGO_FEATURES=""
|
|
|
|
RUN cd ./plan/ && \
|
|
cargo build --release --features="${CARGO_FEATURES}"
|
|
|
|
FROM debian:bullseye-slim
|
|
COPY --from=builder /usr/src/testplan/plan/target/release/testplan /usr/local/bin/testplan
|
|
EXPOSE 6060
|
|
ENV RUST_BACKTRACE=1
|
|
ENTRYPOINT ["testplan"] |