Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
automatizace:jenkins [2023/03/30 19:19]
tomas [Skripty Groovy]
automatizace:jenkins [2024/02/15 19:49] (current)
tomas [Dokumentace]
Line 9: Line 9:
 [[http://www.slideshare.net/dstine4/jenkins-and-chef-infrastructure-ci-and-automated-deployment|Prezentace o Jenkinsovi]]\\ [[http://www.slideshare.net/dstine4/jenkins-and-chef-infrastructure-ci-and-automated-deployment|Prezentace o Jenkinsovi]]\\
  
 +==== Dokumentace ====
 +JENKINS_URL/env-vars.html ... popis preddefinovanych promennych\\
 +/queue/api/\\
 +/api\\
 +/script ... scriptovaci konzole\\
 +/jnlpJars/jenkins-cli.jar ... stáhne jenkins-cli.jar pro Jenkins CLI\\
 +
 +====Jenkins CLI====
 +java -jar jenkins-cli.jar -s http://jenkins-test.oskarmobil.cz/ -noCertificateCheck -http -auth user:password  groovy = <plugins.groovy\\
 ==== API ==== ==== API ====
 curl -u UZIVATEL:TOKEN -k https://SERVER/cesta\\ curl -u UZIVATEL:TOKEN -k https://SERVER/cesta\\
Line 129: Line 138:
 input {} ... uživatlský vstup\\ input {} ... uživatlský vstup\\
 stages {} || parallel {} || matrix {} || steps {} ... obsahuje max. 1 z uvedených\\ stages {} || parallel {} || matrix {} || steps {} ... obsahuje max. 1 z uvedených\\
-script {} ... umožnuje vnořit akce, včetně smyček atd.\\ 
 try {} catch () {}\\ try {} catch () {}\\
 for (int i = 0; i < browsers.size(); ++i) { echo "${pole[i]} " }\\ for (int i = 0; i < browsers.size(); ++i) { echo "${pole[i]} " }\\
Line 138: Line 146:
  
 === sekce steps === === sekce steps ===
 +script {} ... umožnuje vnořit akce, včetně smyček atd.\\
 if (sharedTools.shouldRun("build")) {} .. podmínka, provede akce v {} když je podmínka spněna\\ if (sharedTools.shouldRun("build")) {} .. podmínka, provede akce v {} když je podmínka spněna\\
 dir('android') {} ... provede akce v {} v adresáři android\\ dir('android') {} ... provede akce v {} v adresáři android\\
 script {} ... posloupnost akcí v {}\\ script {} ... posloupnost akcí v {}\\
 +echo '' ... nativni Jenkins funkce pro echo\\
 +sh 'echo ahoj' ... shell skript\\
 +
 withCredentials() {} ... obsah {} se provede s kredencema načtenýma ze secretu, přiřazenýmá do proměnné\\ withCredentials() {} ... obsah {} se provede s kredencema načtenýma ze secretu, přiřazenýmá do proměnné\\
 withCredentials([file(credentialsId: "AA${BB}", variable: 'VAR')]) { writeFile file: '.env.'+ ENV_TYPE.toLowerCase(), text: readFile(VAR) }\\ withCredentials([file(credentialsId: "AA${BB}", variable: 'VAR')]) { writeFile file: '.env.'+ ENV_TYPE.toLowerCase(), text: readFile(VAR) }\\
 withCredentials([ string(credentialsId: 'AA', variable: 'BB'), string(credentialsId: 'CC', variable: 'DD') ]) { echo "${CC} ${DD}"} withCredentials([ string(credentialsId: 'AA', variable: 'BB'), string(credentialsId: 'CC', variable: 'DD') ]) { echo "${CC} ${DD}"}
-sh 'echo ahoj' ... shell skript\\ 
-echo '' ... nativni Jenkins funkce pro echo\\ 
-withNPM(npmrcConfig: 'npmrcs-cz') {} ... použije file npmrcs-cz a udělá z něj .npmrc\\ 
-checkout([$class: 'GitSCM', branches: [[name: 'develop']], extensions: [[$class: 'CleanBeforeCheckout']],userRemoteConfigs: [[credentialsId: 'secret1',url: 'https://user@github.bbb.com/ccc/ddd.git']]])\\ 
 %%withCredentials([ usernamePassword(credentialsId: 'dxl-cz-github-user', usernameVariable: 'username', passwordVariable: 'password') ]) {sh 'git remote set-url origin "https://${username}:${password}@github.vodafone.com/VFCZ-DXL/${microserviceName}.git"' }%%\\ %%withCredentials([ usernamePassword(credentialsId: 'dxl-cz-github-user', usernameVariable: 'username', passwordVariable: 'password') ]) {sh 'git remote set-url origin "https://${username}:${password}@github.vodafone.com/VFCZ-DXL/${microserviceName}.git"' }%%\\
 +withNPM(npmrcConfig: 'npmrcs-cz') {} ... použije file npmrcs-cz a udělá z něj .npmrc\\
 +%%checkout([$class: 'GitSCM', branches: [[name: 'develop']], extensions: [[$class: 'CleanBeforeCheckout']],userRemoteConfigs: [[credentialsId: 'secret1',url: 'https://user@github.bbb.com/ccc/ddd.git']]])%%\\
 +withDockerRegistry([credentialsId: 'aaa', url: "https://REPOSITORY"]) ... provede docker login s kredencema\\
 +
 +<code>configFileProvider([fileId:'conf_file', variable:'soubor']) {
 +      script {
 +        echo "Ctu soubor '${soubor}' ..." 
 +        servers = readJSON(file:soubor)  } }</code>
  
  
Line 163: Line 179:
 unsuccessful {} ...\\ unsuccessful {} ...\\
 cleanup {} ... poslední step, provede se po všech ostatních post krocích, ať dopadly jakkoli\\ cleanup {} ... poslední step, provede se po všech ostatních post krocích, ať dopadly jakkoli\\
 +
 +=== Definice funkcí ===
 +def call(body) {def pipelineParams = [:] } ... definice funkce v knihovně. 1 soubor = jedna funkce, název funkce = název souboru, např. /vars/aaa.groovy, funkce aaa(parametr1=2), pipelineParams.parametr1 je vstupní parametr s hodnotou 2\\