From a00ed3c28318ebbe78839db9aabde32498036139 Mon Sep 17 00:00:00 2001 From: Stephen Adamson Date: Thu, 25 Jun 2026 19:39:09 +0100 Subject: [PATCH] ci: re-add test and race jobs alongside lint and vulns --- .gitea/workflows/ci.yaml | 114 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 4a3517c..7299ac6 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -1,5 +1,5 @@ -name: Lint & Vuln Scan -description: Runs Go vulnerability scanning and frontend quality checks in parallel. +name: CI +description: Runs Go tests, race detection, vulnerability scanning, and frontend quality checks. on: push: branches: @@ -7,7 +7,117 @@ on: - develop pull_request: +env: + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypassword + POSTGRES_DB: mydb + jobs: + test: + name: Tests + runs-on: ubuntu-latest + defaults: + run: + shell: sh + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypassword + POSTGRES_DB: mydb + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.25" + cache: false + + - name: Fix node toolcache path for Post-step cleanup + run: | + mkdir -p /opt/hostedtoolcache/node/22.23.1/x64/bin + ln -sf /usr/local/bin/node /opt/hostedtoolcache/node/22.23.1/x64/bin/node + + - run: apk add --no-cache postgresql-client + + - run: | + for i in $(seq 1 30); do + pg_isready -h postgres -U myuser && break + sleep 1 + done + + - run: PGPASSWORD=mypassword psql -h postgres -U myuser -d mydb -c "CREATE DATABASE crussell_test_db;" 2>/dev/null || true + + - run: go build ./... + working-directory: backend + + - run: go vet ./... + working-directory: backend + + - name: Test + working-directory: backend + run: go test -tags "test,dev" -count=1 -v -timeout 180s ./... + env: + POSTGRES_HOST: postgres + TEST_DB_HOST: postgres + + race: + name: Race detector + runs-on: ubuntu-latest + defaults: + run: + shell: sh + services: + postgres: + image: postgres:16-alpine + env: + POSTGRES_USER: myuser + POSTGRES_PASSWORD: mypassword + POSTGRES_DB: mydb + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.25" + cache: false + + - name: Fix node toolcache path for Post-step cleanup + run: | + mkdir -p /opt/hostedtoolcache/node/22.23.1/x64/bin + ln -sf /usr/local/bin/node /opt/hostedtoolcache/node/22.23.1/x64/bin/node + + - run: apk add --no-cache postgresql-client build-base + + - run: | + for i in $(seq 1 30); do + pg_isready -h postgres -U myuser && break + sleep 1 + done + + - run: PGPASSWORD=mypassword psql -h postgres -U myuser -d mydb -c "CREATE DATABASE crussell_test_db;" 2>/dev/null || true + + - name: Test with race detector + working-directory: backend + run: go test -tags "test,dev" -race -count=1 -timeout 240s ./... + env: + POSTGRES_HOST: postgres + TEST_DB_HOST: postgres + CGO_ENABLED: "1" + vulns: name: Go vulnerabilities runs-on: ubuntu-latest