Skip to content

feat: expand CI/CD pipeline with additional test coverage#168

Closed
bugman-007 wants to merge 1 commit intoLight-Heart-Labs:mainfrom
bugman-007:feat/ci-cd-pipeline
Closed

feat: expand CI/CD pipeline with additional test coverage#168
bugman-007 wants to merge 1 commit intoLight-Heart-Labs:mainfrom
bugman-007:feat/ci-cd-pipeline

Conversation

@bugman-007
Copy link
Copy Markdown
Contributor

Add comprehensive test execution and code quality checks:

  • Add 4 new test jobs to test-linux.yml workflow
  • Add Python type checking workflow (type-check-python.yml)
  • Enhance pre-commit hooks (.pre-commit-config.yaml)

Benefits

  • Catches issues earlier - Problems are detected before code review
  • No manual setup required - All workflows run automatically on push/PR
  • Better code quality - Consistent formatting and linting standards
  • Comprehensive testing - More test suites running in CI

Testing

All workflows are configured to run on:

  • Push to main branch
  • Pull requests to main branch

The workflows use existing test scripts and tools, so no new dependencies are introduced.

@bugman-007 bugman-007 force-pushed the feat/ci-cd-pipeline branch 5 times, most recently from 2296f98 to 06c3cab Compare March 11, 2026 19:48
@bugman-007 bugman-007 force-pushed the feat/ci-cd-pipeline branch from 06c3cab to 6124805 Compare March 11, 2026 19:49
Copy link
Copy Markdown
Collaborator

@Lightheartdevs Lightheartdevs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Request Changes

The PR adds useful CI infrastructure but has issues that could cause problems.

What's good

  • Adding service registry tests to the Linux CI workflow
  • Path-scoped triggers (only runs when relevant files change)

Issues

1. mypy with || true — every step passes unconditionally

All four mypy steps end with || true:

mypy . --ignore-missing-imports --no-strict-optional --check-untyped-defs || true

This means the type-check workflow can never fail. It will always show green regardless of how many type errors exist. Either:

  • Remove || true and fix existing type errors, or
  • If the goal is informational-only, add continue-on-error: true at the step level so GitHub shows it as a warning (orange) rather than silently passing

2. Pre-commit config adds Black + Ruff formatting enforcement

Adding black (formatting) and ruff (linting) as pre-commit hooks will reject commits from every existing contributor who doesn't have pre-commit installed. The existing codebase has never been Black-formatted, so running black --line-length=100 across the Python files will produce a massive formatting diff.

This needs a plan:

  1. Run black once on the entire codebase in a dedicated formatting PR
  2. Then add the pre-commit hook

Otherwise every contributor's next PR will fail pre-commit and they'll need to either format everything or skip hooks.

3. shellcheck with --severity=error — This is fine as a starting point, but SC1091 (can't follow sourced file) is already excluded. Worth also excluding SC2086 (word splitting) since the codebase uses unquoted variables intentionally in many places for readability.

Recommendation

Split into:

  • PR A: Add service registry tests to CI (the .github/workflows/test-linux.yml change) — merge now
  • PR B: The mypy workflow — fix the || true issue first
  • PR C: Pre-commit config — needs a formatting baseline PR first

bugman-007 added a commit to bugman-007/DreamServer that referenced this pull request Mar 12, 2026
Adds test-service-registry.sh to the CI pipeline to validate service
registry functionality on every PR and push to main.

Related: Light-Heart-Labs#168
@bugman-007
Copy link
Copy Markdown
Contributor Author

Closing this PR as it has been split into 4 separate PRs per @Lightheartdevs feedback:

  1. ci: add service registry tests to Linux workflow #176 - Service Registry Tests (ready to merge)
  2. ci: add Python type checking with mypy (informational) #179 - Python Type Checking (fixes || true issue)
  3. chore: apply black formatting baseline #177 - Black Formatting Baseline (prerequisite)
  4. ci: add pre-commit hooks for code quality #178 - Pre-commit Hooks (after baseline merges)

This addresses all the issues raised in the review.

@bugman-007 bugman-007 closed this Mar 12, 2026
@bugman-007
Copy link
Copy Markdown
Contributor Author

Closing this PR as it has been split into 4 separate PRs per @Lightheartdevs feedback:

  1. ci: add service registry tests to Linux workflow #176 - Service Registry Tests (ready to merge)
  2. ci: add Python type checking with mypy (informational) #179 - Python Type Checking (fixes || true issue)
  3. chore: apply black formatting baseline #177 - Black Formatting Baseline (prerequisite)
  4. ci: add pre-commit hooks for code quality #178 - Pre-commit Hooks (after baseline merges)

This addresses all the issues raised in the review.

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.

2 participants