Projektépítés másodszor
Építsünk távolról Sublime Text és SSH segítségével.
Korábban már volt róla szó, hogy hogyan lehetne közvetlenül Sublime-ból build-eket futtatni a virtuális gépünkön egy plugin és egy webalkalmazás segítségével. Most nézzünk meg egy másik megközelítést, ami a Sublime beépített build rendszer támogatását és a PuTTY parancssoros változatát használja.
Amire szükségünk lesz (Windows-os környezetben):
- 1 doboz Linux-os (virtuális) gép
- 1 darab Sublime Text
- 1 darab Plink
- PuTTYgen ízlés szerint
Linux-os környezetben a Plink helyett az ssh, PuTTYgen helyett pedig az ssh-keygen használható.
Elkészítés
Első lépésként, ha még nincs beállítva publikus kulcs autentikáció a hozzáférésünkhöz a szerveren, akkor indítsuk el a PuTTYgen-t és generáljunk egy kulcsot:
Ahogy azt a PuTTYgen okosan írja is, a Generate gomb megnyomása után kijelölt szöveget be kell másolnunk a szerveren a ~/.ssh/authorized_keys
fájlba. Aztán passphrase nélkül mentsük el a privát kulcsot, arra még a későbbiekben szükségünk lesz.
Jöhet a Sublime beállítása. Feltételezem, hogy éppen egy projektben vagyunk, ha nem, csináljunk egyet gyorsan. Ez után a Project > Edit Project
menüre kattintva a megnyíló config fájlhoz hozzáadjuk a saját build rendszerünket (a nagy valószínűséggel már ott lévő "folders"
kulccsal azonos szintre). Majd a Tools > Build Systems
menüpontban ki is választjuk, hogy azt használja a Sublime.
"build_systems":
[
{
"name": "csudiszuper build rendszer",
"working_dir": "c:\\path\\to\\plink\\",
"cmd": [
"plink",
"-i", "c:\\path\\to\\private_key.ppk",
"username@virtual.machine.host",
"futtatandó parancsok"
]
}
]
A "futtatandó parancsok" rész a fenti configban nagyban függ attól, hogy mit is szeretnénk pontosan build futtatása címszó alatt csinálni, de nagyjából annyiból áll, hogy belépünk a projektünk könyvtárába és meghívjuk a build rendszerünket (Phing, Grunt, Ant, make vagy bármi más, ami szimpatikus).
Ezek után a Ctrl+B billentyűkombinációval el is indíthatjuk a futtatást és láthatjuk a szerkesztőben a kimenetét.
Ezen a ponton még belefuthatunk néhány hibába. Például, hogy ha még nem csatlakoztunk a szerverhez, akkor el kellene fogadnunk az RSA kulcsát, amit a build rendszeren keresztül nem tudunk megtenni, így érdemes pl. PuTTY-ból megejteni az első kapcsolódást. Egy másik gyakori probléma az lehet, hogy visszautasítja a szerver a kulcsot, aminek például az SSH szerver beállításaihoz (PubkeyAuthentication
rész a /etc/ssh/sshd_config
fájlban) vagy a home könyvtárunkban lévő .ssh
könyvtár és a benne lévő fájlok jogosultságaihoz (minden csak a saját felhasználónk által legyen írható/olvasható) lehet köze.
Én egyébként mostanában hajlok arra, hogy make-et használjak build-elésre. Jó eséllyel nem kell hozzá semmit se telepíteni és a Phing-et elég lassúnak találtam, ami gyakori futtatás esetén nem egy vágyott tulajdonság. Mivel egyébként is csak konzolos parancsokat futtatok, egy egész egyszerű Makefile
-lal meg lehet úszni például a coding standard-ek ellenőrzését és a unit tesztek futtatását:
PHPUNIT=@vendor/bin/phpunit
PHPCS=@vendor/bin/phpcs
all: test checkstyle
test:
$(PHPUNIT) --bootstrap=vendor/autoload.php tests/
checkstyle:
$(PHPCS) --report=full --standard=PSR2 src/ tests/