From e0ae98ad6c1266377adbe22055bb799eb6d20d2d Mon Sep 17 00:00:00 2001 From: Donavan Fritz Date: Fri, 24 Apr 2026 21:19:10 -0500 Subject: [PATCH] ci: move go test into Dockerfile build stage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The runner runs jobs via act + DinD; `docker run -v "$PWD:/src"` from inside the job container mounts the runner-job filesystem, not the docker daemon's host fs, so the mount appears empty and `go test ./...` fails with "directory prefix . does not contain main module". Run tests in the same container that builds — same workspace, no mount. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .gitea/workflows/main.yaml | 5 ----- Dockerfile | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index 8454c49..efda534 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -9,11 +9,6 @@ jobs: - name: Check out repo uses: actions/checkout@v4 - - name: Run unit tests - run: | - docker run --rm -v "$PWD:/src" -w /src golang:1.26-alpine \ - sh -c "go test ./..." - - name: Log in to Gitea registry uses: docker/login-action@v3 with: diff --git a/Dockerfile b/Dockerfile index bd24ba2..e2b2c26 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,10 @@ RUN go mod download COPY cmd/ ./cmd/ COPY pkg/ ./pkg/ +# Tests run inside the build container — Gitea/act DinD makes mount-based +# `docker run -v $PWD:/src` unreliable for native go test from the runner job. +RUN go test -count=1 ./... + ARG GIT_SHA=unknown RUN CGO_ENABLED=0 go build -trimpath \ -ldflags="-s -w -X main.gitSHA=${GIT_SHA}" \