Probieren Sie CI den Push-Python-Code auf GitHub aus.

DIY Solar Power System ermöglicht die grafische Darstellung und Überprüfung des Stromerzeugungsstatus, jedoch hinter den Kulissen Software, die in einer Programmiersprache namens Python geschrieben wurde Es funktioniert.

Veröffentlicht in PyPI, verwenden Sie es also bitte. Sie finden es so ↓.

$ pip search tsmppt60-driver
tsmppt60-driver           - Python module to get status of your solar charge controller TS-MPPT-60.

… Sie müssen TS-MPPT-60 im Voraus erhalten.

Bei der Veröffentlichung auf PyPI dachte ich, dass es schlecht wäre, wenn ich den Test nicht ernsthaft schreibe, also habe ich versucht, unittest, doctest, Nase, MiniMock zu verwenden.

Die einzelnen Details werden wieder aktiviert, diesmal auf CI (Continuous Integration), Continuous Integration Material.

Es gibt Jenkins als berühmtes CI-Tool, aber da der tsmppt60-Treiber, den ich dieses Mal erstellt habe, als OSS auf github gepusht wird, habe ich das beliebte TravisCI verwendet. ..

Bei Verwendung von TravisCI ist der Gesamtfluss wie folgt.

  1. Registrierung des TravisCI-Kontos (kann mit dem GitHub-Konto verknüpft werden)
  2. Wählen Sie das CI-Ziel-GitHub-Repository auf dem Travis CI-Webeinstellungsbildschirm aus.
  3. Fügen Sie die gemäß TravisCI-Hilfe konfigurierte Datei .travis.yml zum GitHub-Repository hinzu

Wenn Sie ein Github-Konto haben, können Sie den Push an Github anschließen und ihn automatisch mit nur einer einfachen GUI-Operation im Browser und ![Build Status](https: // travis-ci) erstellen und testen. Sie können auch Abzeichen wie org / dodo5522 / tsmppt60_driver.svg) in der README-Datei anzeigen.

Das Setup ist wie unten beschrieben sehr einfach.

Wechseln Sie zunächst zu TravisCI und melden Sie sich mit Anmelden mit Git Hub an.

Da die Zusammenarbeit mit GitHub bereits abgeschlossen ist, schalten Sie das gewünschte Repository für CI ein.

Im folgenden Beispiel ist das CI des Home-Automation-Repositorys aktiviert.

Klicken Sie auf die Zahnradmarkierung im Bild oben, um detaillierte Einstellungen und den Build-Verlauf anzuzeigen.

Möglicherweise wird es standardmäßig mit Push als Auslöser erstellt.

Sie müssen lediglich die gemäß Travis CI-Hilfe festgelegte Datei .travis.yml hinzufügen und in das GitHub-Repository verschieben.

Da der tsmppt60-Treiber ein Python-Paket ist, lauten die Einstellungen für Python wie folgt.

language: python
python:
  - "2.7"
  - "3.2"
  - "3.3"
  - "3.4"
  - "3.5"
  # does not have headers provided, please ask https://launchpad.net/~pypy/+archive/ppa
  # maintainers to fix their pypy-dev package.
  - "pypy"
# command to install dependencies
install:
  - pip install .
  - pip install -r requirements.txt -r test-requirements.txt
# command to run tests
script: nosetests

Ich verfolge die Haupt- und neuesten Versionen von Python und installiere die erforderlichen Pakete vor dem Erstellen und Testen.

require.txt beschreibt die abhängigen Pakete, die erforderlich sind, damit der tsmppt60-Treiber funktioniert, und test-require.txt beschreibt die abhängigen Pakete, die zum Ausführen des Tests erforderlich sind.

$ cat requirements.txt
requests>=2.8.0
$ cat test-requirements.txt
MiniMock>=1.2.8
nose
coverage

Fügen Sie diese .travis.yml, require.txt, test-require.txt in das Stammverzeichnis des tsmppt60-Treiber-Repositorys und git add / commit / push ein. Das Ergebnis sollte wie folgt angezeigt werden.

Es benachrichtigt Sie nicht, während der Build oder Test weiterhin erfolgreich ist, aber sobald es fehlschlägt, werden Sie wie Jenkins per E-Mail darüber informiert, dass es fehlgeschlagen ist.

Informationen zum Anzeigen von Build-Status-Badges finden Sie auch in der GitHub README in der TravisCI-Hilfe (https://docs.travis-ci.com/user/status-images/).

Die Build-Statusanzeige des privaten Repositorys besagt, dass die URL zum Badge ein Sicherheitstoken enthält. Seien Sie also vorsichtig, aber dieses Mal wird das Repository als öffentlich behandelt, sodass es kein Problem gibt.

Nachdem die Testumgebung eingerichtet ist, können Sie mit den Messungen der Testcode-Abdeckung fortfahren (http://blog.rinka-blossom.com/githubnipushji-minopythonkodowo/).

Recommended Posts

Probieren Sie CI den Push-Python-Code auf GitHub aus.
Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden
Probieren Sie das Python LINE Pay SDK aus
Versuchen Sie es mit dem Python Cmd-Modul
[Python] Lesen Sie den Flask-Quellcode
Sakura Verwenden von Python im Internet
Installieren Sie OpenCV2.4 (+ Python) schnell unter OS X und probieren Sie das Beispiel aus
Ich habe versucht, die COTOHA-API zu verwenden (es gibt auch Code auf GitHub).
Verkleide das Gras auf GitHub und versuche Ingenieur zu werden.
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Versuchen Sie es mit der Wunderlist-API in Python
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Entdecken Sie die meisten Yabe-Funktionen auf Github
Versuchen Sie, die Kraken-API mit Python zu verwenden
Versuchen Sie Python
[Python3] Schreiben Sie das Codeobjekt der Funktion neu
[Python] Probieren Sie pydash der Python-Version von lodash aus
Laden Sie mit Python Dateien im Web herunter
Klonen Sie das Github-Repository auf dem Jupyter-Notizbuch
Versuchen Sie, Python-Code zu schreiben, um Go-Code zu generieren. - Versuchen Sie, JSON-to-Go usw. zu portieren
Python Amateur versucht die Liste zusammenzufassen ①
Führen Sie Python-Code in der A2019 Community Edition aus
[Python] Ruft den Zeichencode der Datei ab
Ruft die EDINET-Codeliste in Python ab
[Python] Ein Fortschrittsbalken auf dem Terminal
python setup.py testet den Code mit Multiprocess
Versuchen Sie, das Problem des Handlungsreisenden mit einem genetischen Algorithmus (Python-Code) zu lösen.
Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen
[Python] Lesen Sie den Quellcode von Flasche Teil 2
Test von emacs-org parser orgparse für Python
Zeigen Sie den QR-Code schnell in der Befehlszeile an
Versuchen Sie, das Problem der Python-Klassenvererbung zu lösen
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
[Python] Lesen Sie den Quellcode von Flasche Teil 1
Probieren Sie Progate Free Edition [Python I]
Erstellen mehrerer Python-Umgebungen auf demselben System
Versuchen Sie, mit Mongo in Python auf dem Mac zu arbeiten
Einführung in Python mit Atom (unterwegs)
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Versuchen Sie es mit dem Sammlungsmodul (ChainMap) von python3
Code zum Überprüfen des Betriebs von Python Matplot lib
Zum Zeitpunkt des Python-Updates mit Ubuntu
Bis die Sphinx-Dokumentation auf GitHub veröffentlicht wird
Konvertieren Sie den Zeichencode der Datei mit Python3
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Versuchen Sie, die Monte-Carlo-Methode in Python zu implementieren
Versuchen Sie, direkt von Python 3 aus auf die YQL-API zuzugreifen
Versuchen Sie, MLB-Daten auf Mac und Python zu importieren
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Python unter Windows
Twitter mit Python3