6.1

Filosofia DevOps i Entorns

La filosofia DevOps (Development + Operations) busca connectar el desenvolupament del codi amb el seu llançament al servidor de manera fluida i segura.

💻

Dev (Local)

El programador treballa aquí. Crea codi i executa tests al seu ordinador.

🔬

Pre-producció

Servidor idèntic al real. Els robots passen tots els tests de cop automàticament.


✅ Verd
🚀

Producció

Només s'autoritza el codi si tots els semàfors estan en Verd.

6.2

Integració Contínua (CI) amb GitHub Actions

La Integració Contínua configura els tests perquè s'executin absolutament sols cada vegada que un desenvolupador fa un push enviant codi nou a GitHub. GitHub ens presta gratuïtament els seus servidors (Runners efímers) per executar i analitzar el codi.

📁
Tot es configura amb un fitxer YAML que col·loquem a la carpeta .github/workflows/ del repositori.

L'Anatomia de la Pipeline (el YAML)

YAML .github/workflows/tests.yml
on: [push]          # Gallet: s'executa a cada push

jobs:
  test:
    runs-on: ubuntu-latest   # Servidor Ubuntu de GitHub
    steps:
      - name: Checkout        # Descarrega el repositori
        uses: actions/checkout@v3

      - name: Setup Python
        uses: actions/setup-python@v4

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: Run Tests        # Mode headless!
        run: python manage.py test
on: [push]

El gallet o disparador. Quan s'activarà el robot? Cada cop que fem push.

runs-on: ubuntu-latest

Quin ordinador remot demanem a GitHub? Un servidor Ubuntu de Linux.

Install dependencies

Llegeix el requirements.txt i instal·la Django i Selenium al servidor remot.

Run Tests

Llança les proves. En mode headless perquè el servidor Ubuntu no té pantalla.

🟢
Disc Verd — Codi segur. El desplegament s'autoritza.
🔴
Disc Vermell — Error introduït. El desplegament s'avorta. Cal revisar els logs de la consola.

🗂️ Resum Ràpid — Mòdul 6

DevOpsConnecta Dev ↔ Pre-producció ↔ Producció de manera fluida i automatitzada.
CI (Integració Contínua)Tests que s'executen sols a cada push, sense intervenció humana.
GitHub ActionsServidors gratuïts de GitHub (Runners) que executen el nostre YAML.
on: [push]El gallet: activa la pipeline a cada push al repositori.
requirements.txtEl servidor remot l'utilitza per instal·lar les dependències necessàries.
🟢 / 🔴Verd = codi segur. Vermell = error, desplegament bloquejat.