Hogyan hozzunk létre egy GitLab CI-csővezetéket a PHP-projektek statikus elemzéséhez – CloudSavvy IT

Avatar Gadam | 2021.02.03. 93 Views 0 Likes 0 Ratings

93 Views 0 Ratings Rate it

[ad_1]

Kép a GitLab és a PHPStan logókkal

A statikus elemzés futtatása a kódon időt takarít meg a rejtett problémák feltárásával. A PHPStan egy statikus elemző eszköz a PHP számára, amely segít a kódbázis minőségének javításában. Így futtathatja a PHPStant a GitLab CI csővezetékein belül.

Jó, ha a PHPStan rendszeresen fut, miközben új funkciókat épít ki. Bár helyileg használja, mégis csak idáig vezet. Bízol abban, hogy a többi csapattag ugyanolyan fegyelmezett, mint te. A statikus elemzés integrálása a CI / CD munkafolyamatába biztosítja, hogy a kódot nem lehet egyesíteni, ha az megszakítaná a projekt fő ágát.

A telepítés kezdete a PHPStan segítségével

Először hozzá kell adnia a PHPStant a projektjéhez. Már van egy részletes útmutatónk a PHPStan telepítése és konfigurálása, ezért itt csak az alapokat tárgyaljuk.

Először használja a Composert a PHPStan telepítéséhez:

composer require --dev phpstan/phpstan

Ezután hozzon létre egy alapot phpstan.neon konfigurációs fájl a projektben:

parameters:
  level: max
  paths:
    - src
    - tests
  tmpDir: .tmp

Az ideiglenes könyvtárat felülbírálják, hogy segítsék a GitLab CI gyorsítótárazását, az alábbi beállítás.

Mostantól futtathatja a PHPStant helyileg, hogy ellenőrizze a konfiguráció működését:

vendor/bin/phpstan analyse

Ebben a szakaszban nem mindegy, hogy a tesztek sikeresek-e.

A GitLab beállítása a CI számára

Győződjön meg arról, hogy a kódot egy projektbe tolta a GitLab szerveren. Ellenőriznie kell, hogy a Pipelines funkció be van-e kapcsolva a projektjéhez – ha a bal oldalsávon megjelenik a „CI / CD”, akkor mehet.

Pipelines menüpont képernyőképe a GitLab-ban

A projekt CI rendszerének engedélyezéséhez kattintson az oldalsáv „Beállítások” gombjára. Bontsa ki a „Láthatóság, projektfunkciók, engedélyek” szakaszt, és engedélyezze a „Csővezetékek” funkciót.

Képernyőkép a csővezetékek engedélyezéséről a GitLab-ban

Ha fegyelmezetten használja a GitLab egyesítési kéréseit (MR), mostantól konfigurálhatja a GitLab-ot, hogy megakadályozza az MR-ek egyesülését, hacsak nincs sikeres folyamatuk. Bontsa ki a „Kérések egyesítése” beállításokat, és ellenőrizze a „A csővezetékeknek sikeresnek kell lennie” kapcsolót. Kattintson a „Mentés” gombra a megerősítéshez. Ez megakadályozza, hogy véletlenül egyesítsen egy MR-t, ha a PHPStan nem sikerül a változásokkal szemben.

Pillanatkép a GitLab MR szükséges csővezetékeinek engedélyezéséről

A GitLab CI használatához meg kell adnia egy GitLab Runnert példány, csoport vagy projekt szinten. A futók felelősek a GitLab rendszer által létrehozott CI-feladatok végrehajtásáért.

A PHPStan Docker képet fogjuk használni a PHPStan futtatásához a CI csővezetékünkben. Ehhez GitLab Runner használatára van szükség a Docker végrehajtó segítségével. Ha önállóan kezelt példányt használ, és új Runnert kell konfigurálnia, kövesse a következő útmutatást: cikkünk a GitLab CI felállításáról.

GitLab CI csővezeték létrehozása

A GitLab CI konfigurálása az a használatával történik .gitlab-ci.yml fájl a projekt gyökerénél. A CI csővezetékek több egymást követő lépést támogatnak. Minden szakasz munkája párhuzamosan fut. A PHPStan futtatásához egyetlen szakaszra van szükségünk, amely egy munkát futtat.

stages:
  - phpstan

cache:
  key: $CI_COMMIT_REF_SLUG
  paths:
    - .tmp/
    - vendor/

phpstan:
  stage: phpstan
  image: ghcr.io/phpstan/phpstan
  script:
    - analyse --no-progress --error-format gitlab > phpstan.json
  artifacts:
    when: always
    reports:
      codequality: phpstan.json

Ez a GitLab CI fájl tartalmaz mindent, ami a PHPStan futtatásához szükséges. Meghatározunk egy színpadot, phpstan, amely egy szintén hívott munkát tartalmaz phpstan. A feladat a hivatalos PHPStan Docker képet használja a GitHub tároló-nyilvántartásból.

A GitLab CI gyorsítótár a .tmp és vendor könyvtárakat. Ez javítani fogja az ugyanazon ágon végzett további futtatások teljesítményét. A gyorsítótár automatikusan helyreáll. Vissza a miénkbe phpstan.neon, beállítottuk a tmpDir nak nek .tmp emiatt – ez azt jelenti, hogy most magabiztosan hivatkozhatunk rá a CI csővezeték gyorsítótár-konfigurációjában.

Gyorsítótárazunk is vendor hogy elkerüljék a zeneszerzői függőségek szükségtelen újratelepítését az egyes futtatásokhoz. Ne feledje, hogy nem kell futtatnia composer install manuálisan – a hivatalos PHPStan Docker kép automatikusan meghívja.

Az --error-format a zászlót átadják a PHPStan’s-nak analyse parancs. Ez úgy konfigurálja a PHPStant, hogy JSON fájlt hozzon létre a GitLab kódminőségi jelentésében elfogadott formátumban. Lent a artifacts szakaszban ez a fájl a munka befejezése után feltöltésre kerül a GitLab-ba.

A csővezeték használata

Kötelezze el .gitlab-ci.yml és nyomja meg a GitLab kiszolgálót. A CI-rendszernek most be kell indulnia, és létre kell hoznia az első csővezetéket. A folyamat előrehaladásának megtekintéséhez használja a bal oldali navigációs panel „CI / CD” linkjét.

Pillanatkép a PHPStan GitLab CI csővezetékekről

Ha zöld pipát kap, a PHPStan tesztjei sikeresek voltak! Fióktelete jó állapotban van, és kész az egyesülésre. Ha megjelenik egy piros kereszt, akkor még több munkát kell elvégeznie. A PHPStan és a GitLab CI éppen megállította a potenciálisan meghibásodott kód egyesítését.

A hibák listáját a folyamat jobb oldalán található letöltés ikonra kattintva szerezheti be. Válassza ki a PHPStan kódminőségi tárgyat, hogy megszerezze a PHStan által talált hibák JSON jelentését.

Használat egyesítési kérelmekkel

A JSON kézi elolvasása nem jelent nagyszerű élményt. A GitLab egyesítési kérelmei azonban automatikusan felfedik a jelentés tartalmát. Mivel a jelentés GitLab-kódminőségű műtárgyként van megcímkézve, a GitLab tudja, hogyan kell az információkat benne bemutatni.

Pillanatkép a GitLab Code Quality Merge Request widgetről

A meghibásodott csővezetékkel történő egyesítéskor egy kibontható „Kódminőség” részt kell megjeleníteni. Ez jelzi a felmerült hibák számát. A szakasz kibontásával megtekintheti a PHPStan által talált problémák teljes listáját.

Miután megoldotta a problémákat, tolja a változtatásokat a GitLab-ra. A vezeték ismét futni fog. Miután elkészült, az új állapot megjelenik a Csővezetékek képernyőn és az egyesítési kérelem kódminőségi moduljában.

Következtetés

A PHPStan segít jobb PHP-t írni, amely kevésbé érzékeny a rejtett problémákra. Ahhoz, hogy a legtöbbet hozza ki belőle, az eszközt úgy kell beépíteni a fejlesztési munkafolyamatba, hogy ne lehessen figyelmen kívül hagyni vagy megkerülni.

A PHPStan és a GitLab CI együttes használata azt a következetességet nyújtja, amiben biztosnak kell lennie a kódban. Ha a GitLab-ot úgy konfigurálja, hogy blokkolja az MR-eket egy meghibásodott csővezetékkel, az azt jelenti, hogy a változtatások nem léphetnek be a fő ágba PHPStan-futtatás nélkül. A PHPStan teljes körű támogatása a GitLab kódminőségi jelentéseihez megkönnyíti a hibák felmérését anélkül, hogy elhagyná a webes felhasználói felületet, és segít gyorsan megoldani a feltárt problémákat.

[ad_2]
Source link