[Feature]: Add GitHub Actions CI Pipeline for Django Tests, Python Linting (flake8), and C++ Build Verification
@palaklohia đang làm issue này rồi.
Từ ngày 13/8/2026.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 68/100
Hướng nghiên cứu
Start with the proposed .github/workflows/ci.yml and inspect requirements.txt, .env.example, manage.py, and game/engine/main.cpp. Run python manage.py test game locally, then verify the workflow installs dependencies, runs migrations and linting, and compiles the C++ engine. Done means all three independent CI jobs pass for pushes and pull requests targeting main.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Checkora runs a Django backend with a C++ engine and Python fallback — a multi-language, multi-layer architecture. Currently, there is no CI/CD pipeline in .github/workflows/. All pull requests are merged based purely on human review, with no automated signal for whether the Django test suite passes, the Python code is lint-clean, or the C++ engine compiles successfully.
Problem
- No
.github/workflows/ci.ymlexists (the.github/directory only contains issue/PR templates). - Contributors merging PRs have no automated confirmation that
python manage.py test gamestill passes. - The C++ engine (
game/engine/main.cpp) is not compiled in any automated step — a contributor could break the engine source with a syntactically invalid change and it would only be discovered at runtime. requirements.txtis present but never validated in a clean environment on PRs.
Impact
- A bad merge can silently break the 28-test suite covering all API endpoints.
- The C++ engine could be broken in version control without any automated detection.
- New contributors have no confidence their changes are correct before reviewer attention.
Proposed Solution
I will implement a GitHub Actions workflow:
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
django-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Copy env file
run: cp .env.example .env
- name: Run migrations
run: python manage.py migrate
- name: Run tests
run: python manage.py test game
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install flake8
run: pip install flake8
- name: Lint Python
run: flake8 . --max-line-length=120 --exclude=venv,migrations
cpp-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install g++
run: sudo apt-get install -y g++
- name: Compile C++ engine
run: g++ -O2 game/engine/main.cpp -o game/engine/main
This gives the project three independent CI gates: Django test suite, Python lint, and C++ engine compilation — all running on every PR.
Please assign this to me. I'm ready to implement and test this immediately.
Labels: enhancement, ci/cd, infrastructure, help wanted, GSSoC 2026
- Ngôn ngữ chính
- Python
- Star
- 140
- Fork
- 513
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Checkora/Checkora
-
[Bug]: AI Opening Book reply fails silently due to KeyError on move_history coordinates in ai_moveĐang mởbug GSSoC
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
enhancement GSSoC
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
[UI/UX] Missing hover effect on Resume and Pause buttonsCó thể làm lại được @ishitadutta2 đã nhận 75 ngày trước và không có pull request nào đang mở. Đang mởbug enhancement frontend good first issue GSSoC
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
fix(engine): cap move_history at 300 entries to prevent session cookie overflowCó thể làm lại được @ishitadutta2 đã nhận 75 ngày trước và không có pull request nào đang mở. Đang mởbug GSSoC
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug GSSoC
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Tất cả issue của Checkora/Checkora
Issue tương tự
-
Contributing instructionsĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
dbt-labs/spark-utils#51 ·
-
bug pydanty:is-working
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
pydantic/pydantic-ai#13444 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
good first issue help wanted
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
-
changelog investigate
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
ramnes/notion-sdk-py#502 ·