phpstan integreren in Bitbucket Pipeline
Een statische code analyser helpt om veel problemen op te sporen voordat ze je applicatie neerhalen.
Wij gebruiken phpstan voor onze PHP-projecten en slagen erin om het te integreren in de pijplijn zodat een push alleen wordt ingezet als de analyse succesvol is.
Om dit te laten werken, moet je eerst phpstan zelf configureren voor je PHP-applicatie. We gaan ervan uit dat je composer gebruikt, dus je kunt het gewoon toevoegen als een dev-afhankelijkheid:
composer require --dev phpstan/phpstan
Vervolgens moet je een configuratie maken om in ieder geval de vendor-bestanden uit te sluiten. Om dit te doen, maak je een phpstan.neon aan in je root directory en vul je het met bijvoorbeeld dit:
parameters: excludes_analysis: - *vendor/*
Je kunt nu testen of je code schoon is door het volgende commando aan te roepen vanuit je hoofddirectory (ervan uitgaande dat je vendormap zich daar ook bevindt).
vendor/bin/phpstan analyse -l 0 -c .\phpstan.neon . -geheugenlimiet=1G
Kort over de individuele parameters:
-l 0
-c .phpstan.neon
.
-geheugenlimiet=1G
Als je codebase groter wordt, moet je phpstan misschien meer geheugen geven, dit kun je doen met deze vlag.
Als dit allemaal werkt, kunnen we beginnen met de bitbucket-pijplijn:
Maak gewoon een bitbucket-pipelines.yml bestand aan in je hoofdmap en vul het met de volgende inhoud:
image: php:7.2-cli pijplijnen: branches: dev: // Op welke branch moet de pipeline draaien? - step: // De eerste stap is het aanroepen van phpstan naam: Voer PHP-analyser uit caches: // Dit is een standaard Bitbucket cache die uw composer modules cached - composer // U hoeft ze niet elke keer opnieuw te laden als u de pijplijn uitvoert script: - apt-get update -yqq - apt-get install -y wget git zip unzip // We hebben git en unzip nodig voor de composer installaties - docker-php-ext-install pdo_mysql // Als je MySQL gebruikt heb je waarschijnlijk ook deze php-extensie nodig, // anders zal phpstan de MySQL constanten etc. niet vinden. - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer // Composer zelf moet natuurlijk ook geïnstalleerd worden. - cd ./application/ // Afhankelijk van het framework ... in ons geval ZF3 - composer install // Installeer de afhankelijkheden eenmalig - vendor/bin/phpstan analyse -l 0 -c phpstan.neon . --geheugenlimiet=1G // Last but not least, de beslissende oproep - stap: ... // Dit is waar uw implementatie naar de DEV / TEST / wat dan ook omgeving zou komen
Dus als phpstan iets te klagen heeft, zal het een niet-nul exitcode retourneren en zal Bitbucket de pijplijn afbreken.
De persoon die de slechte push heeft gemaakt, krijgt zelfs een e-mail en kan zijn fouten snel herstellen voordat iemand het merkt.
Je kunt het geheel testen door simpelweg syntactisch onjuiste code te pushen naar de branch waarvoor je de pijplijn hebt geconfigureerd en naar het pijplijnoverzicht in Bitbucket te gaan.
Van daaruit kun je de individuele pijplijnjobs openen en het logboek bekijken door op een individuele job te klikken.
Heb je meer hulp nodig met webontwikkeling voor je bedrijf? Onze webontwikkelaars helpen u graag en beantwoorden uw vragen - neem gerust contact met ons op!
Wat is je project? Als je ons erover wilt vertellen, bellen we je terug!
Hallo, mijn naam is Meike. I take care of the EXWE back office and am responsible for our social media channels. All of our articles are meant to make your life easier and help you make decisions. Nevertheless, it can happen that something remains unclear, so: Als je vragen hebt over dit artikel kun je me makkelijk bereiken op +49 231 93149827.
Everything you need to know for your landing page and how you can use it to target customers and direct them to your website
Project management tools that make your life easier and why e-mail and ticket systems as a communication channel lead to problems.
Everything you need to know about online store hosting - provider, costs, own server? We have the answer!