Skip to content
Mihnea-Vicențiu edited this page Jan 29, 2025 · 30 revisions

CI/CD

Scop

Scopul implementării unui pipeline de Continuous Integration (CI) și Continuous Deployment/Delivery (CD) este de a asigura:

  • Build automat și constant al proiectului (pe fiecare commit sau pull request).
  • Testare automată (testele unitare și eventual teste funcționale/integrare).
  • Deployment facil (după ce build-ul și testele au trecut cu succes)

Tehnologii folosite pentru CI/CD

  • Sistemul de versionare (Git): pentru gestionarea codului sursă.
  • Platforma CI/CD: GitHub Actions
  • Scripturi de build & test: Direct din Visual Studio 2022 (msbuild).

Setup

Pentru a configura proiectul, începem prin clonarea repository-ului folosind comanda:

git clone --recursive https://github.com/unibuc-cs/software-engineering-product-deadzone

Apoi, navigăm în directorul proiectului:

cd software-engineering-product-deadzone

Odată ajunși în director, generăm fișierele proiectului rulând:

generate_project.bat

sau, ne aflăm pe un sistem Unix:

./generate_project.bat

După generarea proiectului, deschidem și compilăm fișierul soluției:

DeadZone.sln

Cerințe adiționale

Visual Studio este instalat cu componenta "Desktop development with C++" activată.

Adăugarea de fișiere noi

Pentru a adăuga fișiere noi în proiect, plasează-le în folderul DeadZone și se rulează din nou scriptul de generare a proiectului:

generate_project.bat

Acest proces va actualiza automat configurația proiectului.


Descrierea Environment-urilor

În dezvoltarea unui joc, folosirea unor medii separate (dev, staging, production) ajută la izolarea diferitelor etape de lucru și la minimizarea riscurilor când apar modificări majore.

1. Development (Dev)

  • Scop: Dezvoltare și testare locală/inițială a codului.

  • Caracteristici:

    • Codul este în stadiu incipient, cu funcționalități noi sau netestate suficient.
    • Build de tip Debug (de obicei).
    • Logare extinsă pentru a diagnostica probleme (log-uri detaliate, mesaje de eroare, assert-uri etc.).
    • În Visual Studio 2022, se folosește configurația Debug și se poate rula direct din IDE.
    • Este mediul în care, cel mai probabil, se lucrează pe ramuri de feature separate (branch-uri), iar la final se face un Pull Request către ramura principală (main/develop).
  • Config specific (exemple):

    • Fișier de config (config/dev_config.json): setări pentru căi de resurse, server local (ex. IP 127.0.0.1), debug on/off.
    • Simulare locală pentru rețea (dacă jocul are multiplayer prin ENet).
Clone this wiki locally