-
Notifications
You must be signed in to change notification settings - Fork 65
Add CI/CD Pipeline with GitHub Actions #1
Copy link
Copy link
Open
Description
The project currently lacks continuous integration and continuous deployment (CI/CD) infrastructure. This makes it difficult to ensure code quality, catch regressions early, and maintain consistent testing across different environments.
Problem
Without automated CI/CD:
- Code changes are not automatically tested before merging
- No automated verification of cross-platform compatibility
- Risk of introducing breaking changes that affect users
- Manual testing burden on contributors and maintainers
- Inconsistent development environments
Proposed Solution
Implement GitHub Actions workflows to provide:
-
Continuous Integration workflow (
.github/workflows/ci.yml):- Run on every push and pull request
- Test all three benchmark modules (listing, serving, checkpointing)
- Validate Python syntax and imports
- Check YAML configuration files
- Run tests across multiple Python versions (3.10, 3.11, 3.12)
- Test on multiple OS platforms (Ubuntu, macOS, Windows if applicable)
-
Code quality checks:
- Linting with
flake8orruff - Type checking with
mypy - Code formatting validation with
black
- Linting with
-
Documentation validation:
- Ensure README examples are accurate
- Validate that script paths are correct
- Check for broken links
Benefits
- Early detection of bugs and compatibility issues
- Increased confidence in accepting contributions
- Better code quality and consistency
- Reduced maintenance burden
- Professional project appearance for potential adopters
Example Workflow Structure
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install -r listing_folder_benchmarks/requirements.txt
pip install -r serving_benchmarks/requirements.txt
pip install -r checkpointing_benchmarks/requirements.txt
- name: Run benchmarks (smoke test)
run: |
# Add basic smoke tests hereReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels