Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
jenkins_django [2021/09/21 08:39] enrique_mieza_sanchez [Provar projecte en Shell] |
jenkins_django [2022/01/17 08:21] (actual) enrique_mieza_sanchez [CI/CD amb Jenkins, Django i Selenium] |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| - | |||
| ====== CI/CD amb Jenkins, Django i Selenium ====== | ====== CI/CD amb Jenkins, Django i Selenium ====== | ||
| Línia 12: | Línia 11: | ||
| {{selenium-logo.png}} | {{selenium-logo.png}} | ||
| - | {{tag> #Ciber #CiberMp03 #Asix #DawMp08 DevOps CI CD CI/CD Jenkins Django Selenium }} | + | {{tag> |
| Línia 28: | Línia 27: | ||
| # A l' | # A l' | ||
| config.vm.network " | config.vm.network " | ||
| + | # També podem accedir per localhost: | ||
| + | config.vm.network " | ||
| + | # Configurem mes paràmetres | ||
| config.vm.provider " | config.vm.provider " | ||
| vb.name = " | vb.name = " | ||
| Línia 37: | Línia 39: | ||
| </ | </ | ||
| + | \\ | ||
| ===== Instal·lar Jenkins ===== | ===== Instal·lar Jenkins ===== | ||
| Línia 52: | Línia 55: | ||
| A més, per poder fer testing web funcional, ens caldrà disposar d'un // | A més, per poder fer testing web funcional, ens caldrà disposar d'un // | ||
| + | Si tens Ubuntu: | ||
| $ sudo apt install firefox firefox-geckodriver | $ sudo apt install firefox firefox-geckodriver | ||
| + | Si utilitzes Debian has de [[https:// | ||
| + | $ sudo apt install firefox-esr | ||
| + | $ wget https:// | ||
| + | $ tar xf geckodriver-v0.30.0-linux64.tar.gz | ||
| + | $ sudo cp geckodriver /bin | ||
| + | |||
| + | \\ | ||
| ===== Projecte Django ===== | ===== Projecte Django ===== | ||
| Provarem els tests implementats al [[https:// | Provarem els tests implementats al [[https:// | ||
| - | Abans caldrà que configurem la base de dades i les dependències necessàries per treballar amb Python: | + | Abans caldrà que configurem la base de dades i les dependències necessàries per treballar amb Python. |
| - | | + | Si estàs en Ubuntu: |
| + | | ||
| + | Si utilitzes Debian: | ||
| + | $ sudo apt install git python3-venv mariadb-server | ||
| ==== Configurar la BD ==== | ==== Configurar la BD ==== | ||
| Línia 85: | Línia 99: | ||
| $ git clone https:// | $ git clone https:// | ||
| $ cd BorsaDeTreball | $ cd BorsaDeTreball | ||
| - | $ virtualenv env # també es pot fer pyhton3 | + | $ python3 |
| $ source env/ | $ source env/ | ||
| (env)$ pip install -U pip | (env)$ pip install -U pip | ||
| Línia 114: | Línia 128: | ||
| Quan el test està correcte s'ens mostra un punt " | Quan el test està correcte s'ens mostra un punt " | ||
| + | |||
| + | === Troubleshooting === | ||
| + | Si us apareix algun d' | ||
| + | selenium.common.exceptions.WebDriverException: | ||
| + | selenium.common.exceptions.InvalidSessionIdException: | ||
| + | selenium.common.exceptions.NoSuchWindowException: | ||
| + | selenium.common.exceptions.WebDriverException: | ||
| + | |||
| + | En [[https:// | ||
| + | |||
| + | |||
| + | Si apareixen errors de desenvolupament (s'ha introduït un error a la branca '' | ||
| + | $ git chechout pro | ||
| + | $ python manage.py test | ||
| Línia 120: | Línia 148: | ||
| # | # | ||
| - | Per poder fer aquest pas heu de treballar en localhost, no pot ser en una màquina | + | Per poder fer aquest pas necessitareu |
| + | |||
| + | A la VM: | ||
| + | $ sudo apt install xorg | ||
| + | $ exit | ||
| + | |||
| + | Des de la màquina //host//: | ||
| + | $ ssh user@maquina -X | ||
| + | |||
| + | O si esteu utilitzant Vagrant: | ||
| + | $ vagrant ssh -- -X | ||
| + | |||
| + | Testejeu abans si podeu arrencar el firefox: | ||
| + | $ firefox | ||
| Això pot ser interessant per depurar alguns problemes i per curiositat de veure com funciona el WebDriver de Selenium. | Això pot ser interessant per depurar alguns problemes i per curiositat de veure com funciona el WebDriver de Selenium. | ||
| + | \\ | ||
| - | ==== Automatitzar Jenkins ==== | + | ===== Automatitzar Jenkins |
| Si ens funcionen els tests en la màquina via //shell//, ara podrem automatitzar la seva execució amb Jenkins. | Si ens funcionen els tests en la màquina via //shell//, ara podrem automatitzar la seva execució amb Jenkins. | ||
| Línia 141: | Línia 183: | ||
| * Secció '' | * Secció '' | ||
| <code bash> | <code bash> | ||
| - | virtualenv | + | python -m venv env |
| . env/ | . env/ | ||
| + | pip install -U pip | ||
| pip install -r requirements.txt | pip install -r requirements.txt | ||
| head -n -3 BorsaDeTreball/ | head -n -3 BorsaDeTreball/ | ||