Mit Travis CI auf Kompatibilität mit einer bestimmten PHP-Version prüfen

Mein Lazy-Loader-Plugin benötigt PHP 5.3 oder höher. Wenn sich User darauf verlassen, ist es ärgerlich, wenn durch eine Unachtsamkeit (wie etwa die Nutzung der []-Syntax für Arrays) in einem Patch- oder Minor-Release diese Mindestanforderung steigt.

Um sowas zu verhindern, lasse ich mit Travis CI jetzt jeden Release auf Kompatibilität mit PHP 5.3 testen.

Das Projekt PHPCompatibility für PHP_CodeSniffer ermöglicht es, Code auf Kompatibilität mit einer bestimmten PHP-Version zu testen (oder mit mehreren Versionen). Die Installation ist über Composer möglich und in der Readme des Projekts beschrieben. Bei mir sieht der require-dev-Teil der composer.json so aus:

"require-dev": {
    "squizlabs/php_codesniffer": "*",
    "wimg/php-compatibility": "*",
    "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4"
},Code-Sprache: JSON / JSON mit Kommentaren (json)

Um jetzt die drei Klassen-Dateien meines Plugins im src-Verzeichnis zu testen, kann ich nach Ausführen von composer install folgenden Befehl verwenden, wenn ich mich im Hauptverzeichnis des Projekts befinde:

vendor/bin/phpcs -p src/ --standard=PHPCompatibility --runtime-set testVersion 5.3Code-Sprache: Bash (bash)

Als Ergebnis bekomme ich optimalerweise ... 3 / 3 (100%) und nicht etwas wie .E. 3 / 3 (100%).

Dieser Befehl kann auch mit Travis CI genutzt werden. Der script-Teil aus der .travis.yml sieht so aus:

script:
- composer install
- vendor/bin/phpcs -p src/ --standard=PHPCompatibility --runtime-set testVersion 5.3Code-Sprache: YAML (yaml)

Wenn dabei nun ein Fehler auftritt, wird der Build abgebrochen und ich kann nicht mehr versehentlich die PHP-5.3-Kompatibilität beenden ?

Ihr findet das Lazy-Loader-Plugin auch auf GitHub, wo ihr euch die .travis.yml und composer.json anschauen könnt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)