Set up CI and git hooks for quality assurance #20

Merged
mprihoda merged 19 commits from SUPP-9 into main 2026-01-30 12:35:32 +00:00
mprihoda commented 2026-01-30 12:29:51 +00:00 (Migrated from github.com)

Summary

This PR implements automated code quality checks for the project, including GitHub Actions CI and local git hooks.

What's included

CI Workflow (runs on all PRs to main):

  • Compile: Validates all JVM and ScalaJS modules compile
  • Format: Checks Scalafmt formatting compliance
  • Lint: Enforces FP principles via Scalafix (no null, var, throw, return)
  • Test: Runs all unit tests (after compilation succeeds)

Git Hooks (optional, local):

  • Pre-commit: Validates formatting before each commit (~10s)
  • Pre-push: Runs tests before pushing (~2min)

Documentation:

  • CONTRIBUTING.md with CI overview, hook installation, and troubleshooting

Phase PRs

  • PR #12: Phase 2: CI validates code formatting
  • PR #14: Phase 3: CI enforces FP principles via Scalafix linting
  • PR #15: Phase 4: CI runs test suite on PR
  • PR #16: Phase 5: Comprehensive CI workflow with parallel jobs
  • PR #17: Phase 6: Pre-commit hook validates formatting locally
  • PR #18: Phase 7: Pre-push hook validates tests pass
  • PR #19: Phase 8: Documentation for contributors

Files Changed

  • .github/workflows/ci.yml - GitHub Actions workflow
  • .scalafix.conf - Scalafix rules configuration
  • .git-hooks/pre-commit - Pre-commit hook script
  • .git-hooks/pre-push - Pre-push hook script
  • CONTRIBUTING.md - Contributor documentation
  • build.mill - Added ScalafixModule mixin
  • Various source files with Scalafix suppression comments for existing code

Testing

  • All CI jobs pass on this branch
  • Git hooks tested locally
  • Documentation verified for accuracy

Closes SUPP-9

🤖 Generated with Claude Code

## Summary This PR implements automated code quality checks for the project, including GitHub Actions CI and local git hooks. ### What's included **CI Workflow** (runs on all PRs to main): - **Compile**: Validates all JVM and ScalaJS modules compile - **Format**: Checks Scalafmt formatting compliance - **Lint**: Enforces FP principles via Scalafix (no null, var, throw, return) - **Test**: Runs all unit tests (after compilation succeeds) **Git Hooks** (optional, local): - **Pre-commit**: Validates formatting before each commit (~10s) - **Pre-push**: Runs tests before pushing (~2min) **Documentation**: - `CONTRIBUTING.md` with CI overview, hook installation, and troubleshooting ### Phase PRs - PR #12: Phase 2: CI validates code formatting - PR #14: Phase 3: CI enforces FP principles via Scalafix linting - PR #15: Phase 4: CI runs test suite on PR - PR #16: Phase 5: Comprehensive CI workflow with parallel jobs - PR #17: Phase 6: Pre-commit hook validates formatting locally - PR #18: Phase 7: Pre-push hook validates tests pass - PR #19: Phase 8: Documentation for contributors ### Files Changed - `.github/workflows/ci.yml` - GitHub Actions workflow - `.scalafix.conf` - Scalafix rules configuration - `.git-hooks/pre-commit` - Pre-commit hook script - `.git-hooks/pre-push` - Pre-push hook script - `CONTRIBUTING.md` - Contributor documentation - `build.mill` - Added ScalafixModule mixin - Various source files with Scalafix suppression comments for existing code ### Testing - All CI jobs pass on this branch - Git hooks tested locally - Documentation verified for accuracy Closes SUPP-9 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No description provided.