Files
PrivateCaptcha/docker/Dockerfile.test
2025-07-09 13:07:04 +03:00

28 lines
1.0 KiB
Docker

FROM golang:1.24.4 AS tests-builder
COPY . /app/
WORKDIR /app
RUN mkdir bin
ENV GOMODCACHE=/cache/gomod
ENV GOCACHE=/cache/gobuild
ARG GIT_COMMIT=HEAD
ARG EXTRA_BUILD_FLAGS=
ARG GO_LDFLAGS="-s -w"
RUN --mount=type=cache,target=/cache/gomod --mount=type=cache,target=/cache/gobuild,sharing=locked env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go build -C cmd/server -ldflags="${GO_LDFLAGS} -X main.GitCommit=${GIT_COMMIT}" ${EXTRA_BUILD_FLAGS} -o ../../bin/server
RUN --mount=type=cache,target=/cache/gomod --mount=type=cache,target=/cache/gobuild,sharing=locked env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go test -c -cover -covermode=atomic ${EXTRA_BUILD_FLAGS} -o tests/ $(go list ${EXTRA_BUILD_FLAGS} -f '{{if .TestGoFiles}}{{.ImportPath}}{{end}}' ./...) -coverpkg=$(shell go list ${EXTRA_BUILD_FLAGS} ./... | paste -sd, -)
FROM debian:stable-slim
COPY --from=tests-builder /app/bin/server /app/bin/server
COPY --from=tests-builder /app/tests /app/tests
COPY --from=tests-builder /app/docker /app/docker
WORKDIR /app
CMD ["/bin/sh", "/app/docker/run-tests.sh"]