Cílem této práce je navrhnout a implementovat systém Continuous Integration v oddělení BootLoader společnosti ZF Engineering Plzeň. Přechod na CI snižuje složitost při integrace kódu a umožňuje jej efektivněji vyvíjet včasným odhalením a odstraněním chyb.
Bakalářská práce popisuje proces vývoje a implementace CI systému, který zahrnuje analýzu a popis toolchainu používaného v Bootloader oddělení. Součástí prace je návrh architektury, výběr vhodných technologií, implementaci. Práce také popisuje možné rozšíření CI systému.
Annotation in English
he main goal of this work is to design and implement the Continuous Integration (CI) system in the BootLoader department of ZF Engineering Plzeň. The transition to continuous integration reduces the complexity of code integration and makes the development cycle more effective by early detection and elimination of errors and contradictions.
Bachelor´s thesis describes the process of development and implementation of Continuous Integration system, which includes analysis and description of the build and test tool chain used in the Boot loader department, architectural design, choosing appropriate technologies and their implementation. The thesis also describes possible extension of the CI system.
Cílem této práce je navrhnout a implementovat systém Continuous Integration v oddělení BootLoader společnosti ZF Engineering Plzeň. Přechod na CI snižuje složitost při integrace kódu a umožňuje jej efektivněji vyvíjet včasným odhalením a odstraněním chyb.
Bakalářská práce popisuje proces vývoje a implementace CI systému, který zahrnuje analýzu a popis toolchainu používaného v Bootloader oddělení. Součástí prace je návrh architektury, výběr vhodných technologií, implementaci. Práce také popisuje možné rozšíření CI systému.
Annotation in English
he main goal of this work is to design and implement the Continuous Integration (CI) system in the BootLoader department of ZF Engineering Plzeň. The transition to continuous integration reduces the complexity of code integration and makes the development cycle more effective by early detection and elimination of errors and contradictions.
Bachelor´s thesis describes the process of development and implementation of Continuous Integration system, which includes analysis and description of the build and test tool chain used in the Boot loader department, architectural design, choosing appropriate technologies and their implementation. The thesis also describes possible extension of the CI system.
Popište principy, koncepty a SW nástroje používané v Continuous Integration (CI) / Continuous Delivery (CD).
Analyzujte a popište sestavovací a testovací proces (toolchain), používaný v oddělení Bootloader.
Tam, kde je to možné, vytvořte nástroj pro nahrazení manuálního vyhodnocování v rámci běhu toolchainu automatickým vyhodnocením. Příklad: automatické porovnávání výsledků statické analýzy kódu mezi dvěma po sobě jdoucími testy. Pro implementaci použijte jazyk Groovy nebo Java; nástroj může být ve formě samostatné CLI aplikace nebo knihovny.
Navrhněte a implementujte CI systém založený na systému Jenkins pro tento toolchain. Použijte koncept deklarativní pipeline.
Vyhodnoťte možnost paralelizace toolchainu na více agentech systému Jenkins; pokud paralelizace může urychlit běh toolchainu, implementujte ji.
Popište zkušenosti s produktivním nasazením vytvořeného CI systému v reálném prostředí.
Research Plan
Popište principy, koncepty a SW nástroje používané v Continuous Integration (CI) / Continuous Delivery (CD).
Analyzujte a popište sestavovací a testovací proces (toolchain), používaný v oddělení Bootloader.
Tam, kde je to možné, vytvořte nástroj pro nahrazení manuálního vyhodnocování v rámci běhu toolchainu automatickým vyhodnocením. Příklad: automatické porovnávání výsledků statické analýzy kódu mezi dvěma po sobě jdoucími testy. Pro implementaci použijte jazyk Groovy nebo Java; nástroj může být ve formě samostatné CLI aplikace nebo knihovny.
Navrhněte a implementujte CI systém založený na systému Jenkins pro tento toolchain. Použijte koncept deklarativní pipeline.
Vyhodnoťte možnost paralelizace toolchainu na více agentech systému Jenkins; pokud paralelizace může urychlit běh toolchainu, implementujte ji.
Popište zkušenosti s produktivním nasazením vytvořeného CI systému v reálném prostředí.