Skip to content

Unify histories: merge feat/ideas + stash into main #68

Unify histories: merge feat/ideas + stash into main

Unify histories: merge feat/ideas + stash into main #68

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-test:
runs-on: ubuntu-latest
services:
redis:
image: redis:7-alpine
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 5s
--health-timeout 3s
--health-retries 5
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
- name: Tidy
run: go mod tidy
- name: Vet
run: go vet ./...
- name: Build
run: go build ./...
- name: Wait for Redis readiness
shell: bash
run: |
set -euo pipefail
for i in {1..60}; do
if bash -lc '>/dev/tcp/127.0.0.1/6379' 2>/dev/null; then
echo "Redis port is open";
break;
fi
echo "Waiting for Redis (attempt $i/60)…";
sleep 1;
done
# basic ping probe using redis-cli if available
if command -v redis-cli >/dev/null 2>&1; then
redis-cli -h 127.0.0.1 -p 6379 ping || true
fi
- name: Test
env:
E2E_REDIS_ADDR: localhost:6379
run: go test ./... -race -count=1
- name: E2E determinism (5x)
env:
E2E_REDIS_ADDR: localhost:6379
run: |
set -euo pipefail
for i in {1..5}; do
echo "Run #$i";
go test ./test/e2e -run TestE2E_WorkerCompletesJobWithRealRedis -race -count=1 || exit 1;
done
- name: Govulncheck
run: |
go install golang.org/x/vuln/cmd/govulncheck@latest
$(go env GOPATH)/bin/govulncheck ./...