bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


jenkins_django

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
jenkins_django [2021/09/21 09:27]
enrique_mieza_sanchez [Projecte Django]
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> #FpInfor #Ciber #CiberMp03 #Ceti #CetiMp03 #Asix #DawMp08 DevOps CI CD CI/CD Jenkins Django Selenium }}
  
  
Línia 28: Línia 27:
   # A l'insti vigileu de no col·lisionar les IP amb els vostres companys   # A l'insti vigileu de no col·lisionar les IP amb els vostres companys
   config.vm.network "public_network", ip: "192.168.1.221"   config.vm.network "public_network", ip: "192.168.1.221"
 +  # També podem accedir per localhost:8080  
 +  config.vm.network "forwarded_port", guest: 8080, host: 8080
 +  # Configurem mes paràmetres
   config.vm.provider "virtualbox" do |vb|   config.vm.provider "virtualbox" do |vb|
     vb.name = "jenkinshost"     vb.name = "jenkinshost"
Línia 37: Línia 39:
 </file> </file>
  
 +\\
  
 ===== Instal·lar Jenkins ===== ===== Instal·lar Jenkins =====
Línia 60: Línia 63:
   $ tar xf geckodriver-v0.30.0-linux64.tar.gz   $ tar xf geckodriver-v0.30.0-linux64.tar.gz
   $ sudo cp geckodriver /bin   $ sudo cp geckodriver /bin
 +
 +\\
 +
 ===== Projecte Django ===== ===== Projecte Django =====
 Provarem els tests implementats al [[https://github.com/aws2/BorsaDeTreball/|projecte de Borsa de Treball fet a l'institut Esteve Terradas de Cornellà]]. Provarem els tests implementats al [[https://github.com/aws2/BorsaDeTreball/|projecte de Borsa de Treball fet a l'institut Esteve Terradas de Cornellà]].
Línia 93: Línia 99:
   $ git clone https://github.com/aws2/BorsaDeTreball.git   $ git clone https://github.com/aws2/BorsaDeTreball.git
   $ cd BorsaDeTreball   $ cd BorsaDeTreball
-  $ virtualenv env         # també es pot fer pyhton3 -m venv env+  $ python3 -m venv env
   $ source env/bin/activate   $ source env/bin/activate
   (env)$ pip install -U pip   (env)$ pip install -U pip
Línia 122: Línia 128:
  
 Quan el test està correcte s'ens mostra un punt ".", mentre que si és erroni ens apareix una "E" juntament amb el motiu de l'error. Quan el test està correcte s'ens mostra un punt ".", mentre que si és erroni ens apareix una "E" juntament amb el motiu de l'error.
 +
 +=== Troubleshooting ===
 +Si us apareix algun d'aquests errors:
 +  selenium.common.exceptions.WebDriverException: Message: Failed to decode response from marionette
 +  selenium.common.exceptions.InvalidSessionIdException: Message: Tried to run command without establishing a connection
 +  selenium.common.exceptions.NoSuchWindowException: Message: Browsing context has been discarded
 +  selenium.common.exceptions.WebDriverException: Message: Failed to convert data to an object
 +
 +En [[https://stackoverflow.com/questions/49734915/failed-to-decode-response-from-marionette-message-in-python-firefox-headless-s|aquest article de Stackoverflow]] s'indica que augmentant la RAM de la màquina de test fins a 2GB soluciona el problema.
 +
 +
 +Si apareixen errors de desenvolupament (s'ha introduït un error a la branca ''dev''), hauria de ser mes segur canviar a la branca de producció i provar de nou:
 +  $ git chechout pro
 +  $ python manage.py test
  
  
Línia 145: Línia 165:
 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 162: Línia 183:
   * Secció ''Build -> Add Build Step -> Execute Shell'' i afegim el codi shell:   * Secció ''Build -> Add Build Step -> Execute Shell'' i afegim el codi shell:
 <code bash> <code bash>
-virtualenv env+python -m venv env
 . env/bin/activate . env/bin/activate
 +pip install -U pip
 pip install -r requirements.txt pip install -r requirements.txt
 head -n -3 BorsaDeTreball/.env.example > BorsaDeTreball/.env head -n -3 BorsaDeTreball/.env.example > BorsaDeTreball/.env
jenkins_django.1632216439.txt.gz · Darrera modificació: 2021/09/21 09:27 per enrique_mieza_sanchez