Automatisiertes deployment von PHP in der CI-Umgebung (Jenkins)

Ich bin derzeit auf der Suche in den Aufbau einer starken CI & deployment-Umgebung für ein Projekt in einem kleinen team von Entwicklern. Ziel ist es, einige Konsistenz in der Art und Weise Dinge getestet werden, die in die Allgemeine code-Qualität und in der Weise, die Einsätze sind gemacht.

Hab ich überlesen Jenkins, Sonar, Maven Capistrano, Phing, ANT, ... und um ehrlich zu sein, ich werde immer verloren in der Mitte alle diese Werkzeuge/Technologien und möchten Sie überprüfen, ob mein Verständnis und geben mir einen Einblick auf beste Weg, dies zu erreichen.

Habe ich bereits setup bis jetzt:

  • Git: wir nutzen git als Versionskontrollsystem und eine Niederlassung der "Entwicklung" für alle neuen dev, die analysiert werden müssen, die durch das CI-tool.
  • Jenkins: Jenkins wird ausgelöst durch einen GIT-hook (auf dem development branch), und führt eine PHING Skript ausführen der nachstehenden Aktionen:

    • Lint: überprüfen von PHP-code-Ausführung, code analyser
    • PHPLoc: Holen Sie sich einige Statistik über PHP-code (Komplexität, depedency..)
    • PDepend: Code-Analyse (nicht sicher über den Unterschied mit PHPLoc)
    • phpmd: mess-Detektor (unused params, komplizierten code...)
    • phpcpd: erkennen, copy paste code
    • PHPcs: überprüfen Sie, coding-standards
    • Phpdox: generieren von PHP-Dokumentation
    • Php_Codebrowser: erstellen Sie eine durchsuchbare Darstellung von PHP-code mit highlights von Verletzungen...
    • PHPUnit: PHP-tests

    Jenkins ist, dann senden alle Berichte/Daten für Sonar unsing sonnar-Läufer.

  • Sonar sammeln alle diese Daten, speichert Sie in einer Datenbank, die die Möglichkeit bietet, von der Analyse der evolution von code der Anwendung über die Zeit. Es auch anzeigen von Informationen in einem schöneren Weg, als Jenkins hat.

Fehlenden Bausteine

  • Automatisierte Bereitstellung QA:
    Ich möchte zum automatisieren der Bereitstellung QA env, wenn ein build-Skript erfolgreich ist (basiert auf test-Erfolg). Dies soll einen Prozess auslösen, ziehen die richtigen Daten auf QA, änderungen an DB, und das Potenzial Datei/Ordner Aufräumen & Genehmigung setups.
  • Automatisieren Sie die Bereitstellung PROD: Dies sollte das gleiche tun wie oben, aber basierend auf dem master-branch. Wir sollten auch hinzufügen, eine weitere Runde der Tests auf, die PROD env nach der Bereitstellung.

- Tools übersicht

  • Git: keine Notwendigkeit zu erklären, es ist alles über die Versionsverwaltung
  • Jenkins: CI-tool, das automatisiert erstellen (code Validierung + Prüfung)
  • Sonar: Reporting tool (Visualisierung erstellen Daten über die Zeit)
  • Maven: Nicht sicher über diese ein. Ist es das fehlende Stück für die Bereitstellung? Oder einem anderen reporting-tool?
  • Capistrano: deployment-tool

Ihre Eingabe 🙂

  • Deiner Stelle meine gesamte Einrichtung für CI (macht es Sinn, bin ich mit den richtigen tools?)
  • Was ist Ihrer Erfahrung nach die besten tools für die Bereitstellung?
  • Als Jenkins ist eine Art "dispatcher" in diesem gesamten CI/Deployment schema ist es die eine Auslösung der Bereitstellung? Wenn ja, ich nehme an, es ist möglich, bestimmte Handlungen auslösen basierend auf den build-status (Erfolg/Misserfolg)?

Vielen Dank für Ihre Zeit und Hilfe!

  • Ich bin derzeit auf der Suche nach etwas, was ruhig ist ähnlich zu dem, was Sie getan haben. Wissen Sie zufällig, befolgt haben ein tutorial für eine Art? Ich bin stecken, wie man jenkins arbeiten mit php(magento) - website
InformationsquelleAutor LEM01 | 2014-03-11
Schreibe einen Kommentar