Table of Contents

Jenkins - integracne kompilacne prostredie

Jenkins - pokrocile integracne kontinualne prostredie je zalozene na 'castom' kompilvoani zdrojovych kodov spolu s pustenim a vyhodnotenim testov.

Adresa prostredia

http://192.168.241.6:8080

login: jenkins
password: ako na phoenixe

Prihlasenie do prostredia

Kazdy vyvojar ma vytvoreny ucet pre prihlasenie sa do prostredia. V pripade, ze nemate vytvoreny ucet, kontaktujte sipikal@transdata.sk

Konzolovy pristup na server

Konzolovy pristup maju nasledovny uzivatelia:

jenkins - plny pristup
kuchar - pristu na priecinky:

/home/jenkins/git/
/home/jenkins/tmp/

Pristup je rieseny pomocou vytvorenej skupiny 'developers'.

Implementovana funkcionalita integracneho prostredia

Konfiguracie integracneho prostredia

Zakladnou pracovnou konfigurovatelnou jednotkou v prostredi je 'Job' a 'View'.

Job moze sluzit:

Postupnost vykonavania krokov v JOB-e

  1. Definovanie vstupnych premennych
  2. Pripojenie k verzionovaciemu systemu a ziskanie aktualnych zdrojovych suborov
  3. Kompilacia projketu
  4. Vykonanie post-*kompilacnych skriptov
  5. Nahratie vykompilovanych suborov na interne FTP alebo ulozisko kniznic


Vseobecna/Spolocna konfiguracia JOB-u

Nastavenie/deklarovanie vstupnych parametrov job-u

Nastaveny parameter je mozne v celom job-e pouzivat. V pripade, ze job casto kopirujete a zavisi od vstupnych parametrov je pouzitie deklarovania vstupnych parametrov vyhodna volba

Nastavenie vstupnych parametrov pre kompilaciu

Konfiguracia a pripojenie k verzionovaciemu systemu

Nastavenie pripojenia k verzionovaciemu systemu v job-e

Konfiguracie JOB-u pre aplikacne kniznice

Kompilacia aplikacnej kniznice a nahravanie changelogu na interne FTP

Parametre skriptu pre kompilaciu kniznice:

  1. Nazov projektu
  2. Cielova platforma projektu - (ALL/24/26) ALL predstavuje vsetky podporovane platformy
  3. Zavislosti - co je zavisle od projektu. V zavislych projektoch sa zdvihne verzia kniznice v projlibs.in-e. Ako delimiter sluzi |
  4. Ostatne parametre
    1. UpdateVersionWhenChangigSource - automaticke zdvihnutie cisla kniznice pri zmene v zdrojovych suboroch. V pripade ze je v projlibs.in-e projektu zdvihnuta nejaka kniznica nekompatibilne, zdvihne sa nekompatibilne aj verzia kniznica aktualne kompilovaneho projektu


Ukazka nastavenia kompilacie aplikacnej kniznice

release_library_vehicle_system eticketissuelogic ALL "Apps/VehicleSystem/branches/${RELEASE_NUMBER}/ESlave|Apps/VehicleSystem/branches/${RELEASE_NUMBER}/EAppCore" UpdateVersionWhenChangigSource

Kopirovanie changelogu na interne FTP Kopirovanie spociva v dvoch krokoch:

  1. Premenovanie changelog_txt ${RELEASE_NUMBER}_changelog_NAZOVPROJEKTU.txt
  2. nakopirovanie changelogu na interne FTP

Konfiguracia JOB-u pre vyslednu multi(maticovo) konfigurovatelnu aplikaciu

Maticovo konfigurovatelny job sluzi na vykompilovanie jednej aplikacie s viacerymi konfiguraciami pomocou konfiguracnej matice

OBC_APPLICATION_PLATFORM - cielova platforma
OBC_PROJECT_CONFIGURATION - pozadovana konfiguracna sablona

Maticovo konfigurovatelny job

Kazdy User-defined axis predstavuje jeden rozmer konfiuracie. Pri kompilacii sa pusti v nasom pripade 8 kompilacii

template/platform platform 2.4 platform 26
sk 24,sk 26,sk
sk_netsam 24,sk_netsam 26,sk_netsam
cz 24,cz 26,cz
pl 24,pl 26,pl

Kompilacia JOB-u pre vyslednu multi(maticovo) konfigurovatelnu aplikaciu

Velmi dolezite je nastavit polozku 'Run each configuration sequentially'

Nastavenie kompilacie

Samotna kompilacia pozostava z dvoch krokov:

  1. Vytvorenie konfiguracneho suboru projset.in na zaklade aktualnych parametrov z konfiguracnej matice
  2. Samotna kompilacia pomocou skriptu release_application_vehicle_system EOnboardComputer ${OBC_APPLICATION_PLATFORM}

Parametre skriptu pre kompilaciu vyslednej aplikacie:

  1. Nazov projektu
  2. Cielova platforma projektu - ${OBC_APPLICATION_PLATFORM} - cielova platform specifikovana podla aktualnych parametrov

Post-kompilacia JOB-u pre vyslednu multi(maticovo) konfigurovatelnu aplikaciu

Post kompilacna operacia sa vykona po celej maticovej kompilacii balikov. Vykonava nasledovne operacie:

  1. Generovanie changelogu
  2. Commit changelogu do SVN
  3. Nahravanie changelog-u s prislusnym cislom release-u na interne FTP. V pripade trunku je changelog nazvany testing
  4. Nahravanie vsetkych vykompilovanych apliakcii na interne FTP

Generovanie, commit changelog-u a nahravanie na FTP

generovanie, commit changelogu a nahravanie changelogu na FTP

Po uspesnom nahrati vykompilovanych aplikacii na interne FTP, sa zmazu pre uvolnenie miesta

Nahravanie aplikacii na FTP

nahravanie aplikacii na FTP

Je potrebne nastavit source( co sa ma nakopirovat ) a destinations( kam na interne FTP sa ma aplikacia nahrat ) Pre nahravanie sa pouziva plugin FTP publisher plugin

Monitor jenkins integracneho prostredia

Monitor je pripojeny na inteligentnu zastrcku ktoru je mozne ovladat pomocou dialkoveho ovladaca polozeneho na skrinke

Po zapnuti a vypnuti zasuviek by mal system normalne nastartovat a zobrazit 3ksmonitoru s jenkins prostredim. V pripade ze nieco nefunguje je potrebne sa pripojit pomocou nomachine na zariadenie:

IP: 192.168.242.201
Login: itroot
Password: itroot