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

Ouverte
#2,622 4 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

@palaklohia y travaille déjà.

Depuis le 13/8/2026.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
68/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
cpp, django, github-actions, python

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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

Langage dominant
Python
Étoiles
140
Forks
513
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Checkora/Checkora

Toutes les issues de Checkora/Checkora

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.