CI gyakorlat segédlet

Hasonló dokumentumok
Oktatási cloud használata

1.2. NFS kliens telepítése és beállítása

2. lépés: openssh szerver telepítés sudo apt-get install openssh-server

RapidMiner telepítés i. RapidMiner telepítés

Programozási technológia 2.

Google Drive szinkronizálása asztali géppel Linux rendszeren

Hardver és szoftver követelmények

Hello Maven. JSE vs. JEE, JEE vs Spring. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 2. Bedők Dávid v0.

italc felhasználói dokumentáció

Fási PHP függőségkezelés composerrel

Automatizált Java Build. ApacheAnt használatával

Saját Subversion tároló üzemeltetése i. Saját Subversion tároló üzemeltetése

italc felhasználói dokumentáció

ALAP BEÁLLÍTÁSOK. 1. Jogosultság megadás, hogy tudjunk dolgozni sudo s jelszó:xxxxxx. 2.Hálózati kártyák beállítása mcedit /etc/network/interfaces

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

8. WebDAV kiszolgáló konfigurálása

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Synology NAS integrálása inels IMM szerverhez

Iványi László ARM programozás. Szabó Béla 1. Óra Verziókövetés

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek


Hálózati operációs rendszerek II. OES biztonsági rendszere

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Netis vezeték nélküli, N típusú Router Gyors Telepítési Útmutató

1. Origin telepítése. A telepítő első képernyőjén kattintson a Next gombra:

Hálózatok építése és üzemeltetése

Netis vezeték nélküli, N típusú, router

Youtube videó letöltés és konvertálás Linuxon

Szoftver technológia. Verziókövető rendszerek. Cserép Máté ELTE Informatikai Kar 2019.

Java I. A Java programozási nyelv

Mi is a git? Csapatban dolgozni Git pro eszközök. Git bevezető. Szabó Adrienn Adatbányászat és Webes Keresés Kutatócsoport

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Beállítások 1. Töltse be a Planet_NET.pkt állományt a szimulációs programba! A teszthálózat már tartalmazza a vállalat

Szoftver technológia. Continuous integration & delivery. Cserép Máté ELTE Informatikai Kar 2019.

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

CentOS 7 OTRS telepítése, beállítása

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Kiszolgálók üzemeltetése. Iványi Péter

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Dropbox - online fájltárolás és megosztás

Megjegyzés vezeték nélküli LAN felhasználóknak

Linux alapok gyakorlat

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Oralce kliens installálása Windows Server 2003-ra

Gyors üzembe helyezési kézikönyv

Source control systems. Horváth Ernő, Dr. Pozna Claudiu Radu

VIRTUAL APPLIANCE KÉZIKÖNYV VIRTUAL APPLIANCE KÉZIKÖNYV

Git verziókövető rendszer alkalmazása a projektek nyomon követésére

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt

X. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK. Mérési utasítás

ProFTPD. Molnár Dániel október oldal

Hálózati rendszerek adminisztrációja JunOS OS alapokon

Új technológiák az Ubuntuban. Új fejlesztések Amik egy éven belül jelenhetnek meg az Ubuntuban

1. Üres merevlemez gépbe helyezése, Boot a CD1 telepíto lemezrol (Hiba esetén video állítása VGA módra F4 billentyüvel, )

A fordítónak mindenhez lehet

További részletes tájékoztatásért lásd: System Administration Guide (Rendszeradminisztrátori útmutató).

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

FELHASZNÁLÓI DOKUMENTÁCIÓ ÜZEMBEHELYEZÉSI KÉZIKÖNYV

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Code review és continous integration toolok BME-MIT

FortiClient VPN-IPSec kliens konfigurációs segédlet

LINUX LDAP címtár. Mi a címtár?

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Unix/Linux alapok 2. Operációs rendszerek I. készítette: Kozlovszky Miklós, Bringye Zsolt Póserné Oláh Valéria, Windisch Gergely

EgroupWare: A csoportmunka megoldás

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Csomagkezelés haladó. Bakai Dániel, volt reszortvezető

GIRO GSM MODEM/VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

ALKALMAZÁSOK ISMERTETÉSE

Médiatár. Rövid felhasználói kézikönyv

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

KnowledgeTree dokumentumkezelő rendszer

Netis Vezetékes ADSL2+, N Modem Router Gyors Telepítési Útmutató

Portforward beállítási segítség

Címkék és ágak kezelése i. Címkék és ágak kezelése

Telenor Webiroda. Kezdő lépések

Microsoft SQL Server telepítése

Könyvtári címkéző munkahely

Windows hálózati adminisztráció segédlet a gyakorlati órákhoz

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Tájékoztató. Használható segédeszköz: -

FRISSÍTÉSI LEÍRÁS A WINIKSZ PROGRAMCSOMAGHOZ

Szathmáry László Debreceni Egyetem Informatikai Kar

Gyors telepítési kézikönyv

Hálózati operációs rendszerek II.

SAMBA. Forrás: Lajber Zoltán: SAMBA alapok dia, SZIE

RH/CentOS felügyelet SUSE Manager segítségével. Kovács Lajos Vezető konzultáns

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

eszemélyi Kliens Szoftvercsomag

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Kézikönyv Nyomtatók kezelése Linuxon

A Java EE 5 plattform

Budapest Internetbank számlaadatok áttöltése Kézi PC-be. (Felhasználási útmutató)

Tortoise SVN használata. Képes útmutató

Entity Framework alapú adatbáziselérés

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Átírás:

CI gyakorlat segédlet Kovács Gábor 2016. március 16. 1. Bevezetés A mai gyakorlat célja egy folyamatos integrációra alkalmas környezet kliens és szerver oldala összeállításának bemutatása egy Hello, world Java alkalmazás,,integrációján keresztül. A folyamatos integráció szolgáltatásai jellemzően egy távoli szerver számítógépen érhetők el, ezt illusztrálandó a távoli számítógépünk egy virtuális gép lesz. A virtuális gép operációs rendszere Ubuntu Linux. Az alkalmazásunkat Java nyelven készítjük. A kliens oldalon egy Git kliensből és Java fejlesztői környezetből áll. A fejlesztői környezetünk szerver oldala a következő elemekből áll: Git szerver Jenkins Java, Ant és Maven (ezek csak együtt értelmesek, és csak Java választása esetén) Nexus 2. A szerver oldal előkészítése A szerver oldalon Ubuntu csomagokból telepítjük a git, ant, maven alkalmazásokat, valamint a Java környezetet. 1

> apt get i n s t a l l g i t > apt get i n s t a l l ant > apt get i n s t a l l maven > apt get i n s t a l l python software p r o p e r t i e s software p r o p e r t i e s common > apt add r e p o s i t o r y ppa : webupd8team/ java > apt g e t update > apt get i n s t a l l o r a c l e java8 i n s t a l l e r Az ant a /usr/share/ant/ könyvárba kerül, a maven pedig a /usr/share/ maven/ könyvárba kerül. A maven által fordított állományok tárhelye a helyi fájlrendszeren a ~/.m2/repository lesz. A Java a /usr/lib/jvm/ alatti verziófüggő alkönyvtárba kerül. A Jenkins és a Nexus szolgálatásokat a weboldalról letölthető Java alkalmazásként futtatjuk, azok nem igényelnek előzetes telepítést. 3. Git A Git szerver oldali szolgáltatást jelszó vagy nyilvános kulcs alapú hitelesítéssel védjük. Ezért előkészítésként létrehozzuk a git felhasználót, az adduser során megadjuk a felhasználó jelszavát. A jelszómentes bejelentkezés lehetővé térelére már a git felhasználóval bejelentkezve létrehozzuk annak home könyvtárában az.ssh könyvtárat benne a authorized_keys fájlt, és beállítjuk azok hozzáférési jogosultságait. > sudo bash > adduser g i t > su g i t > cd > mkdir. ssh > chmod 700. ssh > touch. ssh / a u t h o r i z e d k e y s && chmod 600. ssh / a u t h o r i z e d k e y s Ezután bármely fejlesztő nyilvános kulcsát az authorized_keys fájl végére másolva a fejlesztő jelszó nélkül hozzáférhet a verziókezelő rendszerhez. > cat k o v a c s g r s a. pub >> a u t h o r i z e d k e y s 2

A verziókezelő szolgáltatás erőforrásait tároljuk a /opt/git/ könyvtárban, a projektünk fájlai kerüljenek ennek a teszt.git/ alkönyvtárába, végül állítsuk be ennek tulajdonosát és hozzáférési jogosultságait. > sudo mkdir / opt / g i t > sudo chown R g i t : g i t / opt / g i t / > cd / opt / g i t > mkdir t e s z t. g i t > cd t e s z t. g i t / > g i t i n i t bare > chown R g i t : g i t.. / t e s z t. g i t / > chmod R g+ws.. / t e s z t. g i t / 4. Jenkins A Jenkins folyamatos integrációs szolgáltatást a http://jenkins-ci.org/ URL-ről tölthetjük le, amit a java -jar paranccsal önállóan is futtathatunk, vagy egy szervlet konténerbe telepíthetünk. A konfigurációs beállítások a ~/.jenkins/ könyvtárba kerülnek. > java j a r j e n k i n s. war A Jenkins konfigurálását egy webfelületen keresztül végezhetjük le, ami alapértelmezés szerint a helyi gép 8080-as portján érhető el. Mivel esetünkben a távoli gép egy virtuális szerver, NAT beállításokkal a 8080-as portot átirányítjuk a helyi gép valamely szabad portjára. A Jenkins konfigurációját a kiegészítők kezelésével kezdjük. A Jenkins alapértelmezés szerint támogatja az Ant és Maven szkripteket, viszont a verziókezelők közül hiányzik a Git. Ezért a Jenkins kezelése menü Kiegészítők Kezelése almenüjében az elérhető pluginek közül kiválasztjuk a GIT plugint, majd telepítjük azt. A Rendszerbeállítások menüben konfiguráljuk a Java alapú fejlesztői környezetünket a fenti Git, Ant, Maven, Java telepítések beállításai alapján. A konfigurációk maradjan a ~/.jenkins könyvtárban. Home könyvtár ~/.jenkins A JDK szekcióban adjuk meg a Java telepítés adatait, a JAVA HOME környezeti változó értékét. 3

1. ábra. Jenkins menedzsment felülete JDK installations Name Oracle Java 1.8 JAVA HOME /usr/lib/jvm/java-8-oracle Install automatically false A Git szekcióban megadjuk a git bináris állomány elérési útját. Git Path to Git executable git Install automatically false Az Ant szekcióban adjuk meg a Ant telepítés adatait, a ANT HOME környezeti változó értékét. Ant installations Name Apache Ant ANT HOME /usr/share/ant Install automatically false A Maven szekcióban adjuk meg a Maven telepítés adatait, a MAVEN HOME környezeti változó értékét, és a helyi maven gyűjtemény elérési útját. 4

Maven installations Name Apache Maven MAVEN HOME /usr/share/maven Maven Project Configuration Local Maven Repository Default ( /.m2/repository) A Jenkins további beállításaiban konfiguráljuk a webes elérés URI-ját, az adminisztrátor email címét, a shellt, és az SMTP szervert. Jenkins Location Jenkins URL http://127.0.0.1:8080/ System Admin e-mail kovacsg@tmit.bme.hu address Shell Shell executable /bin/bash E-mail Notification SMTP server 10.211.55.4 Új projektként egy Maven projektet hozunk létre Hello néven. (Ha a komplex Hello szolgáltatást C nyelven készítenénk, akkor freestyle projektet hoznánk létre.) A projekt konfigurációs oldalát a 4 ábra mutatja. Project név Hello Leírás Hello, world! A verziókezelő szolgáltatás a projekthez, vagyis a Jenkins feladathoz tartozik. Verziókezelőként válasszuk ki a Gitet, és adjuk meg annak elérési útvonalát. A Jenkinst jelenleg nem git felhasználóként futtatjuk, ezért az aktuális felhasználónak jelszómentes bejelentkezést kell engedélyeznünk a Git szerverre. Ezért a Jenkins felhasználójaként létrehozunk egy nyilvános kulcsot, és azt hozzáadjuk a git felhasználó hitelesített kulcsaihoz. > ssh keygen t dsa b 1024 > ssh copy id g i t @ l o c a l h o s t Verziókezelő rendszer Repositories Repository URL Git ssh://git@localhost/opt/ git/hello.git A Hello projekt építését periodikusan végezzük el, beállításunk alapján minden nap 3:15-kor le fog futni az automatikus építés. 5

2. ábra. A hello projekt konfigurációja Build Triggers Build periodically kiválasztva Schedule 15 3 * * * Maga az építés Maven POM konfiguráció és Maven szabályok alapján fog működni. A Maven projektünk leírója a projekt gyökérkönyvtárában lévő pom.xml lesz, és a takarítást végző clean, valamint a függőségek feloldását, a fordítást, és a Maven gyűjtőhelyre másolást végző install célokat tekintjük építésnek. Ennek hatására a Java projektünkből készített jar állomány bekerül a ~/.m2/repository könyvtárba. Build Root POM pom.xml Goals and options clean install 5. A Hello world projekt A fejlesztői gépen először elérhetővé tesszük a jelszómentes bejelentkezést a Git szerverre a nyilvános kulcs megfelelő helyre másolásával, amit a Git szer- 6

ver hozzáad a hitelesített kulcsok fájl végére. A hozzáférés SSH-n keresztül valósul meg, az SSH portot a Jenkins portjához hasonlóan konfigurálnunk kell a gazda gép és a virtuális gép közötti NAT-on. > scp p3022 /. ssh / i d r s a. pub g i t @ l o c a l h o s t :. ssh / k o v a c s g r s a. pub Ezután létrehozunk egy üres Maven projektet. Ezt tetszőleges korszerű Java fejlesztői környezetben megtehetjük, a gyakorlaton NetBeanst használtunk. Alternatívaként konzolon az alábbi paranccsal is létrehozhatjuk ugyanezt: >mvn v e r s i o n mvn archetype : generate DgroupId=hu. bme. tmit. a g i l e D a r t i f a c t I d=h e l l o DarchetypeArtifactId= maven archetype q u i c k s t a r t DinteractiveMode=f a l s e Ennek hatására létrejön egy hello könyvtár benne a projektleíró pom.xml fájllal és egy src/mail/java/ alkönyvtárral, ahova a forráskódok kerülnek. A pom.xml egy hu.bme.tmit.agile csoportazonosítóval, hello erőforrásnévvel és 1.0-SNAPSHOT verzióval rendelkező projektet ír le. A projekt függőségeit egy dependencies címkén belül dependency elemekben megadott csoportazonosító, erőforrásnév, verzió hármasok felsorolásával adhatjuk meg, amelyek határására a Maven letölti számára elérhetővé tett központi tárhelyről az azonosított objektumokat, tipikusan jar fájlokat. A build elem beállítása futtathatóvá teszi a jar fájlt annak leírójában a Main-Class attribútum beállításával. <?xml version= 1. 0 encoding= UTF 8?> <p r o j e c t xmlns= h t t p : //maven. apache. org /POM/ 4. 0. 0 x m l n s : x s i= h t t p : //www. w3. org / 2001/XMLSchema i n s t a n c e xsi:schemalocation= h t t p : // maven. apache. org /POM/ 4. 0. 0 h t t p : //maven. apache. org / xsd /maven 4. 0. 0. xsd > <modelversion>4. 0. 0</ modelversion> <groupid>hu. bme. tmit. a g i l e</ groupid> <a r t i f a c t I d>h e l l o</ a r t i f a c t I d> <version>1.0 SNAPSHOT</ version> <packaging>j a r</ packaging> <p r o p e r t i e s> <p r o j e c t. b u i l d. sourceencoding>utf 8</ p r o j e c t. b u i l d. sourceencoding> 7

<maven. compiler. source>1. 7</maven. compiler. source> <maven. compiler. t a r g e t>1. 7</maven. compiler. t a r g e t> </ p r o p e r t i e s> <b u i l d> <p l u g i n s> <plugin> <groupid>org. apache. maven. p l u g i n s</ groupid> <a r t i f a c t I d>maven jar plugin</ a r t i f a c t I d> <c o n f i g u r a t i o n> <a r c h i v e> <manifest> <mainclass>hu. bme. tmit. a g i l e. h e l l o. Hello</ mainclass> </ manifest> </ a r c h i v e> </ c o n f i g u r a t i o n> </ plugin> </ p l u g i n s> </ b u i l d> </ p r o j e c t> Írjuk meg a Hello, world alkalmazásunkat: package hu. bme. tmit. a g i l e. h e l l o ; public class Hello { public static void main ( S t r i n g [ ] args ) { System. out. p r i n t l n ( Hello, world! ) ; } } A projektünk gyökérkönyvtárában hozzunk létre egy lokális Git repositoryt, és nézzük meg a létrejövő állományokat, majd kérdezzük le a repository státuszát. > g i t i n i t. R e i n i t i a l i z e d e x i s t i n g Git r e p o s i t o r y in / Users / kovacsg / NetBeansProjects / h e l l o /. g i t / > cd. g i t / > l s 8

HEAD c o n f i g hooks o b j e c t s branches d e s c r i p t i o n i n f o r e f s > g i t s t a t u s On branch master I n i t i a l commit Untracked f i l e s : ( use g i t add <f i l e >... to i n c l u d e in what w i l l be committed ) pom. xml s r c / nothing added to commit but untracked f i l e s p r esent ( use g i t add to track ) A könyvtárunk két, a Git számára ismeretlen objektumot tartalmaz, a pom.xml-t és a src/ könyvtárat. Tegyük ezeket verziókezeltté! > g i t add pom. xml > g i t s t a t u s On branch master I n i t i a l commit Changes t o be committed : ( use g i t rm cached <f i l e >... to unstage ) new f i l e : pom. xml Untracked f i l e s : ( use g i t add <f i l e >... to i n c l u d e in what w i l l be committed ) s r c / 9

> g i t add s r c /main/ java /hu/bme/ tmit / a g i l e / h e l l o / Hello. java > g i t s t a t u s On branch master I n i t i a l commit Changes t o be committed : ( use g i t rm cached <f i l e >... to unstage ) new f i l e : pom. xml new f i l e : s r c /main/ java /hu/bme/ tmit / a g i l e / h e l l o / Hello. java > g i t commit m i n i t i a l A helyi repositoryba a git commit után bekerültek a változtatásaink, a következő feladatunk ezek megosztása a többi fejlesztővel. Először is meg kell adnunk, hogy a helyi repository melyik távoli repositoryt tükrözi. Utána létre kell hoznunk az origin távoli repositoryban a master ágat. > g i t remote add o r i g i n ssh : / / g i t @ l o c a l h o s t :3022/ opt / g i t / h e l l o. g i t > g i t push u o r i g i n master Counting o b j e c t s : 12, done. Delta compression using up to 4 threads. Compressing o b j e c t s : 100% (4/4), done. Writing o b j e c t s : 100% (12/12), 1.16 KiB 0 bytes /s, done. Total 12 ( d e l t a 0), reused 0 ( d e l t a 0) To ssh : / / g i t @ l o c a l h o s t :3022/ opt / g i t / h e l l o. g i t [ new branch ] master > master Branch master set up t o t r a c k remote branch master from o r i g i n. A fájljaink feltöltődtek az integrációs szerverre, így ott elindíthatunk egy építést a 4 ábrán a menüben látható Építés Most linkre kattintással. Sikeres lefutás után a Build Historyban megjelenik az építés eredménye kék színnel, ha sikeres volt. A Hello world alkalmazásunk a ~/.m2/repository/hu/bme/ tmit/agile/hello/1.0-snapshot könyvtárba kerül, amit a java -jar pa- 10

ranccsal futtathatunk. A hu/bme/tmit/agile tag a csoportazonosító, a hello az objektumazonosító, a 1.0-SNAPSHOT pedig a verzió. > java j a r h e l l o 1.0 SNAPSHOT. j a r Hello, world! 6. Az eredmények megosztása Ahhoz, hogy a jar fájlunk ne csak a szerver egy hálózaton keresztül hozzá nem férhető könyvárában legyen, egy repository manager szoftver segítségével megosztjuk. A repository maganeger egy URL-t rendel egy helyi fájlrendszeren elérhető erőforráshoz, és képes tükrözni távoli repository managerek erőforrásait. Repository managernek a Sonatype Nexus szoftverét használjuk. A zip formátumban elérhető alkalmazást kicsomagoljuk, a beágyazott webszerver portát módosítjuk, majd elindítjuk: > cd nexus > bin / nexus c o n s o l e Böngészőben megnyitjuk a weboldalt (http://localhost:48081/nexus), és bejelentkezünk adminisztrátorként az alapértelmezett jelszóval. Megnyitjuk a Repositories menüt, és létrehozunk egy hosztolt, vagyis helyi fájlrendszeren elérhető, repository-t. Az azonosító meg fog jelenni az URL-ben, a név teszőleges. Helyi tárhelyként állítsuk be a fájlrendszer kiajánlani kívánt könyvtárát. A repository létrejött, a Maven projekt erőforrásai elérhetők másik felhasználó számára a http://localhost:48081/nexus/content/repositories/ agile2016/ URL-en. A hozzáférést nyilván korlátozhatjuk a projekt tagjaira. Csatoljuk vissza a projekt tagjai által generált jar fájlokat az alkalmazásunkba. A feladatunk, hogy a Maven alkalmazás tudtára hozzuk, hogy nem csak a központi repositoryból dolgozhat, hanem a projekt céljaira dedikáltból is. A projektleírónkban ezért hozzáadjuk ezt az URL-t mint új repository: <p r o j e c t>... <r e p o s i t o r i e s> <r e p o s i t o r y> <id>a g i l e</ id> 11

3. ábra. A Nexus konfigurációja <u r l>h t t p : // l o c a l h o s t : 4 8 0 8 1 / nexus / content / r e p o s i t o r i e s / a g i l e 2 0 1 6 /</ u r l> </ r e p o s i t o r y> </ r e p o s i t o r i e s>... </ p r o j e c t> Ebben a repositoryban található erőforrásokat a csapat fejlesztői függőségként felhasználhatják a saját moduljuk készítése során, a függőségek dependency tagként jelennek meg a projektleíróban. Így megvalósítottuk a munkacso- 12

4. ábra. A projektünk repository-ja portok közötti integrációt. A felhasználók git szerverre pusholt forrásai naponta, ütemezetten fordulnak, és bekerülnek a Jenkinst futtató szerver egy könyvtárába. A Nexus elérhetővé teszi azt weben keresztül, így az új verziót a kliens fejlesztői környezete automatikusan letölti, és a kör bezárult. 7. Nem Java projektek Nem Java, hanem például C-ben írj projekt esetén a Jenkinsben a Freestyle project beállításaival hozunk létre új projektet. A Java projekthez ha- 13

sonlóan itt is meg kell adnunk a verziókezelő rendszerhez való hozzáférést. A különbség a fordításban, és telepítésben jelentkezik. Míg Maven Java projekt esetén a pom.xml alapján a Maven elvégezte a fordítást, jar készítést, tesztelést, telepítést stb., addig most ilyen eszközünk nem áll rendelkezésre, saját szkriptet kell írnunk, ami elvégzi ezeket a feladatokat. A szkriptet az Execute shell szövegdobozban kell elhelyeznünk. A szkriptet a Jenkins akárcsak Java projektek esetén ütemezetten, a verziókezelő eseményeitől függően vagy egyedi kérésre futtatja le. Arról, hogy a kimenet a fájlrendszeren, esetleg egy távoli szerveren a megfelelő helyre kerüljön, szintén ugyanebben a szkriptben kell gondoskodnunk. Shell szkriptről lévén szó, az képes a fájlrendszeren a Jenkins könyvárán kívül lévő más szkripteket, Makefile-okat meghívni, így elkerülhetjük, hogy a jelszavainkat webfelületen szöveges formában meg kelljen adnunk. 14