From a28a9bc9d4f0b2fdc836cebffaa5df252bf19999 Mon Sep 17 00:00:00 2001 From: Lucas Rayan Date: Fri, 30 Oct 2026 09:33:43 -0300 Subject: [PATCH] ci: run Go tests as a non-root user initdb, used by the embedded Postgres in the e2e suites, refuses to run as root. Co-Authored-By: Claude Sonnet 5.5 --- .gitea/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 6922d7d..053d5b3 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -70,9 +70,17 @@ jobs: docker rm "$cid" >/dev/null exit "$status" - run: go vet ./... - - run: go test ./... -v + # The end-to-end suites start an embedded Postgres, and initdb refuses to + # run as root, which is what a job container is. Run the tests as a + # throwaway unprivileged user (GitHub's hosted runners already are one). + - name: Testes env: TEST_DATABASE_URL: postgres://lambdamail_test:lambdamail_test@localhost:5432/lambdamail_test?sslmode=disable + run: | + id tester >/dev/null 2>&1 || useradd -m -u 1001 tester + chown -R tester:tester "$GITHUB_WORKSPACE" + runuser -u tester -- env "HOME=/home/tester" "PATH=$PATH" \ + "TEST_DATABASE_URL=$TEST_DATABASE_URL" go test ./... -v ts-auth: name: TypeScript (auth)