Pomemben del DevOps razvoja je Continuous Integration/Continuous Delivery: avtomatizacija buildov in inštalacij aplikacij, ustrezna priprava in namestitev:
- preverjanje kode
- upravljanje z odvisnostmi
- izvajanje testov
- priprava dokumentacije
Najpopularnejši: Apache Maven, Gradle, Make, …
Maven
Standardizirana projektna struktura z dobrimi praksami (npr. verzioniranje)
Struktura projekta
- src
- main
- java
- si.fri
- Resources
- java
- test
- main
- pom.xml
pom.xml
Project Object Model definira metapodatke:
- naziv projekta
- verzijo:
ime_projekta.major.minor.release-SNAPSHOT - odvisnosti
- …
Življenjski cikli
Default: koraki gradnje in nameščanja
- Faze: validate, initialize, …, compile, …, test, …, install, deploy
Clean: čiščenje rezultatov prejšnjih buildov
- Faze: pre-clean, clean, post-clean
Site: oblikovanje dokumentacije
- Faze: pre-site, site, post-site, site-deploy
Odvisnosti (dependencies)
Podvajanje odvisnosti: zasede več prostora, počasen “check-out”, težavno sledenje verzijam
Binarni repozitorij: ena kopija - shranjena izven projekta, odvisnost definirana v pom.xml
- Maven Central hrani artefakte varnost, hitrost
- Maven iz pom.xml razbere odvisnosti in jih samodejno namesti, verzije se dedujejo
- Določanje dosega odvisnosti: compile, runtime, test, …
Vtičniki (plugins)
Spreminjanje in konfiguracija Maven build procesa
Maven ukazi
mvn + faza življenjskega cikla + parametri
- mvn package: preverjanje in prevajanje (JAR)
- mvn test: izvedba (unit) testov
- mvn site: generiranje spletne strani
- mvn deploy: namestitev v skupni Maven repozitorij
- mvn clean deploy -X -P test: čiščenje, namestitev, debug in aktivacija profila test