Skip to content

GH-63: PR validation workflow with CI services#80

Closed
alekspetrov wants to merge 1 commit intomainfrom
pilot/GH-63
Closed

GH-63: PR validation workflow with CI services#80
alekspetrov wants to merge 1 commit intomainfrom
pilot/GH-63

Conversation

@alekspetrov
Copy link
Copy Markdown
Contributor

Summary

Automated PR created by Pilot for task GH-63.

Closes #63

Changes

GitHub Issue #63: PR validation workflow with CI services

Parent: GH-36

Create .github/workflows/ci.yml and .env.ci. This is the most complex piece: 4 parallel jobs (Lint with golangci-lint, Test with race detector + coverage using PostgreSQL 16 and Redis 7 service containers, Security with gosec + govulncheck in report-only mode, Build verifying both go build and Docker build). Include Go module caching, coverage report as PR comment, and the .env.ci file with CI-specific database/Redis connection strings and test configuration. Triggered on PRs to main.

Add `.github/workflows/ci.yml` with 4 parallel jobs:
- Lint: golangci-lint via official action
- Test: race detector + coverage with PostgreSQL 16 and Redis 7
  service containers, coverage report as PR comment
- Security: gosec + govulncheck in report-only mode
- Build: go build + conditional Docker build

Add `.env.ci` with CI-specific connection strings and test config
(reduced Argon2 params for speed, localhost service endpoints).

Go module caching handled by actions/setup-go cache integration.
@alekspetrov alekspetrov closed this Apr 2, 2026
@alekspetrov alekspetrov mentioned this pull request Apr 2, 2026
1 task
@alekspetrov alekspetrov deleted the pilot/GH-63 branch April 2, 2026 21:38
@alekspetrov alekspetrov mentioned this pull request Apr 2, 2026
1 task
alekspetrov added a commit that referenced this pull request Apr 2, 2026
- Extract run() from main() to fix exitAfterDefer (gocritic)
- Add ReadHeaderTimeout to all http.Server instances (gosec G112)
- Bind test listener to 127.0.0.1 instead of all interfaces (gosec G102)
- Add bounds checking for Argon2 int→uint casts (gosec G115)
- Refactor config.Load() into section helpers to reduce cyclomatic complexity (gocyclo)
- Fix response body leaks in tests (bodyclose)
- Check all error return values in tests (errcheck)
- Fix gofmt/goimports formatting across all files
- Fix "initialise" → "initialize" typo (misspell)
- Name return values in startServer helper (gocritic unnamedResult)
- Remove unused os import from config_test.go
@alekspetrov alekspetrov mentioned this pull request Apr 4, 2026
32 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR validation workflow with CI services

1 participant