Integració Contínua i DevOps (CI/CD)
Tenim els tests. Els executem al nostre ordinador i van bé. Però som humans i ens podem descuidar d'executar-los. Hem d'automatitzar-ho tot.
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.
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.
.github/workflows/ del repositori.
L'Anatomia de la Pipeline (el YAML)
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.
🗂️ Resum Ràpid — Mòdul 6
push, sense intervenció
humana.