]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Build possum inside test Dockerfile
authorMatt Joiner <anacrolix@gmail.com>
Thu, 22 Feb 2024 07:57:38 +0000 (18:57 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 22 Feb 2024 07:57:38 +0000 (18:57 +1100)
Dockerfile

index 5cfe148d03bce384b310b963e53380c59c2b1130..2451b3091f754e44634c8dd74db961990c8fc3e5 100644 (file)
@@ -2,25 +2,38 @@
 
 FROM alpine
 
-RUN apk add go fuse bash
-
-RUN go install github.com/anacrolix/godo@v1
-RUN echo "$HOME"
-ENV PATH="/root/go/bin:$PATH"
+RUN apk add go fuse bash rustup git gcc musl-dev g++
+RUN rustup-init -y --profile minimal
+ENV PATH="/root/.cargo/bin:$PATH"
 
 WORKDIR /src
 
 COPY . .
+RUN git clone https://github.com/anacrolix/possum
+
+WORKDIR possum
+
+RUN git submodule update --init --recursive
+RUN --mount=type=cache,target=/root/.cargo/registry \
+       --mount=type=cache,target=/root/.cargo/git \
+       --mount=type=cache,target=/src/possum/target \
+       cargo build
+
+WORKDIR ..
 
 ARG GOCACHE=/root/.cache/go-build
 ARG GOMODCACHE=/root/go/pkg/mod
 
 RUN --mount=type=cache,target=$GOCACHE \
        --mount=type=cache,target=$GOMODCACHE \
+       CGO_LDFLAGS=possum/target/debug/libpossum.a \
        go test -failfast ./...
 
-# Can't use fuse inside Docker? Asks for modprobe fuse.
+# Can't use fuse inside Docker? Asks for modprobe fuse.
 
-# RUN --mount=type=cache,target=$GOCACHE \
-#      --mount=type=cache,target=$GOMODCACHE \
-#      ./fs/test.sh
+# RUN go install github.com/anacrolix/godo@v1
+# RUN echo "$HOME"
+# ENV PATH="/root/go/bin:$PATH"
+# # RUN --mount=type=cache,target=$GOCACHE \
+# #    --mount=type=cache,target=$GOMODCACHE \
+# #    ./fs/test.sh