[Feature]: Add GitHub Actions CI Pipeline for Django Tests, Python Linting (flake8), and C++ Build Verification

Đang mở
#2,622 4 bình luận 1 reaction 0 người được giao Xem trên GitHub

@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
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
cpp, django, github-actions, python
Lĩnh vực
backend, build-system, ci-cd

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ả

available enhancement GSSoC

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.yml exists (the .github/ directory only contains issue/PR templates).
  • Contributors merging PRs have no automated confirmation that python manage.py test game still 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.txt is 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

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Checkora/Checkora

Tất cả issue của Checkora/Checkora

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.