Jenkins 2.0 ominaisuudet
Skriptaaminen
Demo dockerin avulla
Valikoima plugineja valmiina
Ensimmäisen jobin luominen helpompaa
Helppo testata Dockerin avulla
docker run -p 8060:8080 --name jenkins jenkinsci/jenkins:2.0-alpha-2
Pieniä, käyttöä helpottavia parannuksia
Konfigurointi sivu muuttunut
Ei mitään mullistavia muutoksia
Plugin, joka on ollut olemassa jo pitkään nimellä Workflow
Tukee pitkiä, monivaiheisia prosesseja, jotka säilyvät käynnistyksien yli
Voidaan määrittää Jenkinsfilessä tai UI:ssa
Lisätietoja https://jenkins-ci.org/2.0/
Alpha buildit saatavilla
Release muutaman kuukauden sisään
Voi kirjoittaa joko suoraan Jenkinssiin, tai SCM:n Jenkinsfile:n
http://localhost:8060/newJob, Pipeline tyypiksi, Pipeline tab
node('master') {
echo "hello"
}
Tallenna ja buildaa
node('master') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
}
node('master') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew test"
}
stage 'Build'
node('master') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew build"
}
stage 'Test'
node('master') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew test"
}
Remote lisättävä käsin http://192.168.179.53:8060/computer/new
docker run --rm -ti --link jenkins:master java:8-jdk /bin/bash -c "curl http://master:8080/jnlpJars/slave.jar -s -o /slave.jar && java -jar /slave.jar -jnlpUrl http://master:8080/computer/remote/slave-agent.jnlp"
One liners ftw!
stage 'Build'
node('master') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew build"
}
stage 'Test'
node {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew test"
}
stage 'Package'
node('remote') {
git url: 'https://github.com/jyrkiput/jenkins-demo'
sh "./gradlew jar"
}
Konfiguroitava valmiiksi, scm, polling, etc
Annetaan polku Jenkinsfileen, jossa on Pipeline määritelty
Pipeline from SCM
https://github.com/jyrkiput/jenkins-demo/blob/master/Jenkinsfile
Groovy DSL
Voi looppailla, tehdä if -lauseita, vaikka mitä
Esimerkkejä https://github.com/jenkinsci/pipeline-examples
Voi tehdä kirjastoja joita voi uudelleenkäyttää
Tallennetaan Jenkinsin hallinnoimaan git -repoon, http://localhost:8060/workflowLibs.git
Kirjasto
// src/org/foo/Zot.groovy
package org.foo;
def checkOutFrom(repo) {
git url: "git@github.com:jenkinsci/${repo}"
}
Pipeline koodi
def z = new org.foo.Zot()
z.checkOutFrom(repo)
Tarvitsee oman "Seed" -jobin
Luo uusia jobeja
Paljon laajempi DSL
Pluginit asennettava JobDSL, Gradle, Parameterized Trigger plugin
Luo uusi Freestyle -job
Build -> Process Job DSLs -> Use the provided DSL script
def projectName = "job-dsl"
folder(projectName)
freeStyleJob("${projectName}/Build") {
label("master")
scm {
git {
remote {
url("https://github.com/jyrkiput/jenkins-demo")
}
}
}
steps {
gradle {
tasks("build")
}
downstreamParameterized {
trigger("$projectName/Test") {
parameters {
currentBuild()
}
}
}
}
}
freeStyleJob("${projectName}/Test") {
label("master")
scm {
git {
remote {
url("https://github.com/jyrkiput/jenkins-demo")
}
}
}
steps {
gradle {
tasks("test")
}
}
}
Kysymyksiä, kommentteja?