Jenkins
Jenkins on serveritarkvara, mis aitab automatiseerida erinevate tarkvaraprojektide ehitust ja paigaldust.
Jenkinsi peamine ülesanne on käivitada eeldefineeritud samme - nt tõmmata alla javas kirjutatud rakenduse algkood, ehitada sellest kokku jar fail ning kopeerida see õnnestumise korral rakendusserverisse. Aga sellega saab automatiseerida igasuguseid serverites tehtavaid töid.
Jenkinsi käivitamiseks tuleb tõmmata kodulehelt jenkins.war ning panna see käima
java -jar jenkins*.war
Misjärel peaks saama selle veebiliidesele üle http://localhost:8080/ aadressi ligi
Luues freestyle projekti, saab avanevas veebivormis määrata giti allika kust jenkins koodi tirib, lisada build-stenkäsud-skripti, mis koodi peale allatõmbamist valmis ehitab ja paar käsku-skripti mis valmis rakendust peale seda testib ja rakendusserverisse uploadib. Nende sammude juures saab seejuures kasutada ka muutujaid ning luua valikmenüüsid kust võimalik eri parameetreid või prod-test keskkondi vahtada
Valides This project is parameterized saab lisada projektidele ka erinevaid muutujaid
Ssh käsu käivitamist saab lihtsustada läbi muutujate kasutamise
ssh_command="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null test@server.ee" $ssh_command "cd /srv && wget -c https://repo1.maven.org/maven2/org/opentripplanner/otp/1.3.0/otp-1.3.0-shaded.jar"
Failide kopeerimine peale õnnestunud ehitust
scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null build/*.jar kasutaja@server:/srv
Et anda mingit muutujat ühelt töölt teistele edasi tuleb paigaldada plugin “Parameterized Trigger Plugin”.
Nüüd saab post-build actioni juures defineerida trigger parameterized build on other projects ning seal defineerida muutujaid stiilis
muutuja=väärtus
või siis eelnevalt sisestatud string parameetreid
git_refspec=${git_refspec}
Jenkins käivitab shelli käske /bin/sh abil mitte bashiga, mistõttu vaja keerukamate käskude algusse panna #!/bin/bash