Files
PrivateCaptcha/docker/Dockerfile.test
renovate[bot] 9a9ab4f631 Update golang Docker tag to v1.24.4 (#151)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-17 12:34:08 +03:00

28 lines
974 B
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 -f '{{if .TestGoFiles}}{{.ImportPath}}{{end}}' ./...)
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"]