Some checks failed
Podman Rootless Demo / test-backend (push) Failing after 7m53s
32 lines
No EOL
1.2 KiB
Text
32 lines
No EOL
1.2 KiB
Text
# Base stage with consistent working directory
|
|
FROM docker.io/rust:1.89-slim AS base
|
|
WORKDIR /app
|
|
|
|
# Planner: produce recipe.json
|
|
FROM base AS planner
|
|
RUN apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
RUN cargo install --locked cargo-chef
|
|
COPY . .
|
|
RUN cargo chef prepare --recipe-path recipe.json
|
|
|
|
# Deps: compile only external crates
|
|
FROM base AS deps
|
|
RUN apt-get update && apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
RUN cargo install --locked cargo-chef
|
|
ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
|
|
COPY --from=planner /app/recipe.json recipe.json
|
|
RUN cargo chef cook --release --recipe-path recipe.json
|
|
|
|
# Test-build: compile workspace with pre-built dependencies
|
|
FROM base AS test-build
|
|
COPY --from=deps /usr/local/cargo /usr/local/cargo
|
|
COPY --from=deps /usr/local/rustup /usr/local/rustup
|
|
COPY --from=deps /app/target /app/target
|
|
COPY . .
|
|
RUN cargo test --workspace --locked --no-run
|
|
|
|
# Runner: minimal runtime for test execution
|
|
FROM base AS runner
|
|
COPY --from=test-build /app/target /app/target
|
|
WORKDIR /app
|
|
CMD ["cargo", "test", "--workspace", "--locked", "--", "--test-threads=1"] |