Skip to content

Conversation

@GaneshPatil7517
Copy link

Summary

This PR introduces a minimal GitHub Actions CI pipeline for concore. It adds automated linting and test execution on every push and pull request.

What's included

  • Python 3.11 setup with pip caching
  • Dependency installation from requirements.txt
  • Linting with ruff (syntax errors, invalid print, undefined all)
  • Test execution with pytest
  • Dockerfile.py build validation

Configuration notes

The following directories are excluded from linting/testing due to config-dependent experimental scripts:

  • measurements/ - benchmark scripts requiring external port configuration
  • 0mq/ - ZeroMQ examples with external variable definitions
  • ratc/ - experimental code with known issues
  • linktest/ - symlink files, not Python code
  • Dockerfile.* - Docker files with .py extension

Why this matters

  • Prevents broken code from being merged
  • Catches syntax errors and import issues early
  • Improves contributor feedback loop
  • Establishes foundation for future test coverage

Verification

  • Linting passes locally (ruff check .)
  • Pytest runs without collection errors
  • Existing draft-pdf.yml workflow is unchanged

Fixes #232

Copilot AI review requested due to automatic review settings February 9, 2026 11:52
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new GitHub Actions workflow to provide basic continuous integration for the repo (linting, pytest invocation, and a Dockerfile build check) on pushes and pull requests to the main branches.

Changes:

  • Introduces .github/workflows/ci.yml to run Ruff checks for a small set of syntax/critical errors.
  • Runs pytest with several directories ignored.
  • Validates Dockerfile.py by attempting a docker build.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Use minimal requirements-ci.txt (no tensorflow/heavy deps)
- Handle pytest exit code 5 (no tests) vs real failures
- Move Dockerfile build to separate job with path filter
- Add pyzmq to CI deps (required by concore.py)
@pradeeban
Copy link
Member

@GaneshPatil7517 I see you are creating PRs against the main branch. Please create those against the dev branch. In this case, I was able to switch the branch to dev. Developing against the dev branch will ensure there is no repeated effort on an already fixed issue.

- Add set +e before pytest to prevent bash -e from exiting on code 5
- Add dev branch to push/pull_request triggers per maintainer request
@GaneshPatil7517
Copy link
Author

Hi @pradeeban, thanks for the heads up! I've updated the PR base branch to dev. I also added dev to the CI workflow triggers so it runs on pushes and PRs to dev as well. Let me know if anything else needs to be adjusted.

@pradeeban pradeeban merged commit d155182 into ControlCore-Project:dev Feb 9, 2026
@pradeeban
Copy link
Member

Merged. Thanks.

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.

No CI/CD for testing — only draft-pdf.yml workflow exists

2 participants