-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
40 lines (32 loc) · 1.9 KB
/
Dockerfile
File metadata and controls
40 lines (32 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FROM rust:1.91-bookworm AS base
COPY cert[s]/ /usr/local/share/ca-certificates/custom/
RUN update-ca-certificates
WORKDIR /app
# Copy manifests and create stub source files to cache dependency builds
COPY Cargo.toml Cargo.lock ./
COPY crates/code-index-core/Cargo.toml crates/code-index-core/Cargo.toml
COPY crates/code-index-parser/Cargo.toml crates/code-index-parser/Cargo.toml
COPY crates/code-index-store/Cargo.toml crates/code-index-store/Cargo.toml
COPY crates/code-index-watcher/Cargo.toml crates/code-index-watcher/Cargo.toml
COPY crates/code-index-embeddings/Cargo.toml crates/code-index-embeddings/Cargo.toml
COPY crates/code-index-server/Cargo.toml crates/code-index-server/Cargo.toml
RUN mkdir -p crates/code-index-core/src && echo "" > crates/code-index-core/src/lib.rs && \
mkdir -p crates/code-index-parser/src && echo "" > crates/code-index-parser/src/lib.rs && \
mkdir -p crates/code-index-store/src && echo "" > crates/code-index-store/src/lib.rs && \
mkdir -p crates/code-index-watcher/src && echo "" > crates/code-index-watcher/src/lib.rs && \
mkdir -p crates/code-index-embeddings/src && echo "" > crates/code-index-embeddings/src/lib.rs && \
mkdir -p crates/code-index-server/src && echo "fn main() {}" > crates/code-index-server/src/main.rs
RUN cargo install cargo-nextest --locked
RUN cargo build --release --workspace --features semantic || true
RUN cargo build --workspace --features semantic || true
RUN cargo test --workspace --features semantic --no-run || true
# Copy real source
COPY . .
RUN touch crates/*/src/*.rs
FROM base AS release
RUN cargo build --release --workspace --features semantic
CMD ["cp", "/app/target/release/code-index-server", "/output/code-index-server"]
FROM base AS test
RUN cargo nextest run --workspace --features semantic --no-run
CMD cargo nextest run --workspace --features semantic --profile ci && \
cp target/nextest/ci/junit.xml /output/junit.xml