Gewinnen Sie die Python + Flask-Web-App mit Jenkins

(-_-) .oO (Mach dir keine Sorgen um den Titel, es ist mühsam darüber nachzudenken)

Einführung

Ich habe versucht, Python + Flask-Webanwendung mit Jenkins zu erstellen, so dass Memo.

Die Verzeichnisstruktur sieht folgendermaßen aus (ich habe die Verzeichnisse gelöscht, die ich nicht sehen möchte).

% tree -d
.
├── env (virtual env)
├── project
│   ├── app
│   ├── conf
│   ├── logs
│   ├── models
│   │   └── mongo
│   ├── services
│   ├── static
│   ├── templates
│   ├── tests
│   │   ├── app
│   │   ├── cover
│   │   ├── data
│   │   ├── models
│   │   │   └── mongo
│   │   ├── services
│   │   ├── utils
│   │   └── view
│   └── utils
└── script
    ├── deploy (wie Stoff)
    └── tools

Direkt unter dem obersten Verzeichnis befindet sich ein Verzeichnis namens project, unter dem alle Anwendungen bereitgestellt werden. Außerdem können Nosetests aus dem Projektverzeichnis ausgeführt werden, und alle Tests werden zu diesem Zeitpunkt bestanden. Installieren Sie außerdem die Abdeckung, damit die Abdeckung erhalten werden kann. Die Testausführungsmethode ist wie folgt.

% source env/bin/activate
% cd project
% export PYTHONPATH=$PYTHONPATH:`pwd`
% nosetests -v -w tests/ --with-coverage --with-xunit --cover-package=app --cover-package=models --cover-package=services --cover-package=utils --cover-html --cover-xml

Dinge zu tun, bevor Jenkins gestartet wird

Stellen Sie sicher, dass Sie das Pip-Freeze festschreiben, um die Umgebung mit virtualenv in Jenkins vorzubereiten (oder Sie können es einzeln mit der Shell ausführen, aber das Pip-Freeze ist in Anbetracht der Version einfach).

% source env/bin/activate
% cd project
% pip freeze > requirements.txt
% git add requirements.txt
% git commit
% git push origin master

Arbeite auf der Jenkins-Seite

Installieren Sie zunächst das von Ihnen verwendete VCS-Plug-In und das Cobertura-Plug-In, um die Abdeckung zu messen.

Erstellen Sie dann einen neuen Job und geben Sie den Repository-Pfad in der Quellcodeverwaltung ein. Wählen Sie dann unter Build-Prozeduren für Build hinzufügen die Option Shell ausführen aus und geben Sie Folgendes ein:

if [ ! -d venv ]; then
  virtualenv --distribute venv
fi
source venv/bin/activate
cd project
pip install -r requirements.txt
export PYTHONPATH=$PYTHONPATH:$WORKSPACE/project
echo "Wenn Sie eine Kopie der Einstellungen haben oder etwas im Voraus tun müssen, tun Sie dies hier"
nosetests -v -w tests/ --with-coverage --with-xunit --cover-package=app --cover-package=models --cover-package=services --cover-package=utils --cover-html --cover-xml
sed "s|filename=\"|filename=\"project/|g" $WORKSPACE/project/tests/coverage.xml > $WORKSPACE/project/tests/coverage2.xml

Da sich der Quellcode des letzten Sed nicht direkt unter dem Verzeichnis befindet, fügen Sie den relativen Pfad vom obersten Verzeichnis zum Pfad des Abdeckungsmessungsergebnisses hinzu, um das Problem zu lösen, dass der Quellcode in der Abdeckung nicht sichtbar ist (Referenz: [Hudson]). "Quellcode ist nicht verfügbar."](Http://stackoverflow.com/questions/2285672/hudson-source-code-is-unavailable/2915958#2915958 "Hudson" Quellcode ist nicht verfügbar. ")

Fügen Sie als Nächstes zwei Post-Build-Prozesse hinzu. Eine besteht darin, eine Zusammenfassung der JUnit-Testergebnisse hinzuzufügen und den folgenden Inhalt in das XML-Testergebnis zu kopieren.

project/nosetests.xml

Der andere fügt ein Aggregat für den Cobertura-Abdeckungsbericht hinzu und kopiert Folgendes in das Cobertura XML-Berichtsmuster:

project/tests/coverage2.xml

Speichern Sie nun den Build und führen Sie ihn aus.

Vielleicht freuen Sie sich über das Dashboard.

Recommended Posts

Gewinnen Sie die Python + Flask-Web-App mit Jenkins
Einfache Web-App mit Python + Flask + Heroku
Webanwendung mit Python + Flask ② ③
Webanwendung mit Python + Flask ④
Beispiel zum Einfügen der Python Flask-Webanwendung in den Azure App Service (Webanwendung)
(Fehler) Stellen Sie eine mit Flask mit Heroku erstellte Web-App bereit
[Python] Führen Sie Flask in Google App Engine aus
Dämonisieren Sie eine Python-Webanwendung mit Supervisor
Laden Sie mit Python Dateien im Web herunter
Erstellen Sie eine einfache Web-App mit Flasche
Führen Sie Python-Webanwendungen mit NGINX + NGINX Unit + Flask aus
Starten Sie einen Webserver mit Python und Flask
Führen Sie Flask unter CentOS mit Python3.4, Gunicorn + Nginx aus.
Programmieren mit Python Flask
Stellen Sie Python 3.6 / Django / Postgres-Webanwendungen in Azure bereit
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
PIL in Python unter Windows8 (für Google App Engine)
Web Scraping mit Python + JupyterLab
Entwicklung von Webanwendungen mit Flask
Web-API mit Python + Falcon
Web Scraping Anfänger mit Python
Optimieren Sie die Websuche mit Python
So stellen Sie eine mit Flask erstellte Web-App für Heroku bereit
Speichern Sie Bilder im Web mit Python (Colab) auf einem Laufwerk.
Mit Flask erstellte SNS Python-Grundlagen
Erste Schritte mit Python-Webanwendungen
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Führen Sie die App mit Flask + Heroku aus
Überwachen Sie Python-Webanwendungen mit Prometheus
Holen Sie sich Web-Screen-Capture mit Python
Stellen Sie die Flask-App für Heroku bereit (bitter)
Stellen Sie die Flask-App auf Heroku bereit
Hinweise zur Verwendung von rstrip mit Python.
Stellen Sie die Flask-App auf Heroku bereit
Erste Schritte mit Python 3.8 unter Windows
Anwendungsentwicklung mit Docker + Python + Flask
[Memo] Tweet auf Twitter mit Python
Die erste künstliche Intelligenz. Fordern Sie die Webausgabe mit Python heraus. ~ Kolbeneinführung
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Erstellen Sie mit pyenv unter Ubuntu 12.04 schnell eine Ausführungsumgebung für Python3.4 + Nginx + uWSGI + Flask-Webanwendungen
Azure-Tabellenspeicher mit PTVS Flask-App
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Stellen Sie die Kolben-App mit mod_wsgi bereit (mithilfe von pipenv).
Spielen Sie wie eine Web-App mit ipywidgets
Erste Schritte mit Python Web Scraping Practice
Onkel SES modernisiert die VBA-App mit Python
POST verschieden mit Python und empfange mit Flask
Datenintegration von der Python-App unter Linux zu Amazon Redshift mit ODBC
Ein Memo mit Python2.7 und Python3 in CentOS
Kartenmietinformationen auf einer Karte mit Python
Verfolgen Sie aktive Anwendungen auf einem Mac mit Python