Integrációs és ellenőrzési technikák (VIMIAC04)
Figyelem: A gyakorlatok során törekedjen mindenki arra, hogy professzionális jellegű munkát végezzen! Például kerüljük az asdfg commit megjegyzéseket, nem sokkal több idő azt írni helyette, hogy Add acceleration feature vagy Fix #5 (további tanácsokat commit megjegyzések írásához lásd itt vagy itt).
A gyakorlatok során sokszor IDE helyett parancssori eszközöket fogunk javasolni, mert egyrészt egy CI környezetben azokat lehet csak használni, másrészt ilyen bevezető jellegű feladatoknál többet lehet belőle tanulni.
A gyakorlat elvégzéséhez az alábbi szoftverekre van szükség (ezek elérhetők a BME cloud-ban lévő sablonon vagy telepíthetők saját gépre is):
Figyelem: Saját környezetet használata előtt a Java
JDK beállítását ellenőrizzük: JDK legyen és ne JRE, PATH
és
JAVA_HOME
helyesen beállítva (részletesen lásd például
itt).
java -version
javac -version
Mivel most mindenki egymástól függetlenül fogja elvégezni ugyanazokat a kiegészítéseket és javításokat ugyanazon a nyílt forráskódú projekten, ezért a bevett módszer (fork) helyett mindenki saját magának készít egy tárhelyet (repository) azonos tartalommal, amin tud dolgozni.
ivt-lab
nevű publikus tárhelyet és állítsa is
inicializált állapotba (Initialize this repository with a
README). Ezen a tárhelyen kell majd végig dolgozni a labor
folyamán.Figyelem: A GitHub felületéhez 2021 óta nem lehet jelszóval csatlakozni parancssorból. A bejelentkezéshez egy úgynevezett personal access tokent (PAT) kell készíteni, amivel be lehet jelentkezni a parancssorból.
git clone
parancs).
git init
ivt-lab
könyvtárba (cd
)!git status
), adjon minden
új vagy módosított fájlt hozzá az aktuális indexhez
(git add
), véglegesítse azokat (git commit
),
majd küldje át az új tartalmat a GitHub-on lévő tárhely példánynak
(git push
).
git commit
parancs első végrehajtásakor hiányolhatja
a felhasználó és az e-mail cím konfigurációját, ezeket a
git config user.email "you@example.com"
és
git config user.name "Your Name"
parancsokkal lehet
megtenni.A saját Git tárolónkban lévő projekt fordítását és tesztelését végezzük el a GitHub Actions segítségével.
maven.yml
fájlt lehet szerkeszteni.yml
(YAML) fájlt, hogy JDK 11-et használ-e a
fordítás során! A szintaxissal kapcsolatos segítséget a hivatkozott
oldalon talál.A GitHub Actions által felfedett egységteszt hiba abból fakad, hogy egy funkció még nincs teljesen implementálva a kódban (torpedó ALL tüzelési módja). Ennek kijavítását egy GitHub Flow munkafolyamat mentén végezze el.
[web/local] Az Actions kimenete és a forráskód vizsgálata alapján határozza meg a teszt hibájának az okát.
[web] Definiálja pontosan az új funkciót, az elvégzendő implementációs feladatot és ehhez hozzon létre egy hibajegyet (Issue) a GitHub webes felületén.
[web] Hozzon létre egy fejlesztési ágat (branch) ezen implementációs feladatok elvégzéséhez.
[local] Töltse le a távoli tárolót (pull) és váltson a megfelelő ágra (checkout).
[local] Végezze el az implementációt és
tesztelje azt egy helyi futtatás keretében
(mvn test
).
[local] Véglegesítse és töltse fel (commit and push) a változásokat a távoli tárolóba.
[web] Az így kapott változások alapján hozzon létre egy pull request-et a webes felületen, hogy megvitatható legyen a módosítás a fejlesztőcsapaton belül. A pull request szövegébe írjuk bele, hogy "Fix #1", ezzel jelezve, hogy az 1-es hibajegyet fogja majd lezárni.
Figyelem: Még ha helyesen implementálta is a hiányzó
funkciót, és a helyi gépen működik is a teszt, ezen a ponton a
létrehozott CI pipeline hibára fog futni. Ha a hiba az hogy:
"Resource not accessible by integration"
, akkor kövesse ezt
a leírást.
[web] Vizsgálja meg a létrehozott pull request-et, és ha rendben találja, akkor fogadja el, olvassza vissza a master ágba és törölje ki a fejlesztésre használt ágat. (A pull request nyújtotta átvizsgálási lehetőségekkel a következő gyakorlaton foglalkozunk majd.)
[local] Töltse le a távoli tárolóból a
változásokat és vizsgálja meg őket a git log
utasítás
segítségével.
További információ:
branch-A
, branch-B
).branch-A
-ra,
szerkessze egy adott fájl adott sorát, majd véglegesítse a változásokat
(commit).branch-B
-re,
szerkessze ugyanazon fájl ugyanazon sorát kicsit máshogy, majd
véglegesítse a változásokat (commit).Most, hogy sikeresen lefut a build a GitHub Actions CI szerveren is, érdemes még néhány dolgot beállítani.
mvn
parancshoz a --no-transfer-progress
kapcsolót. Olvashatóbb
lett a log?Véglegesítsen minden változást, töltse fel a távoli tárolóba és ellenőrizze, hogy a GitHub Actions fordítás is helyesen lefut-e.
Figyelem: A saját GitHub tárhelyet ne törölje, a további gyakorlatokon is azon fog dolgozni.