Warning: Undefined array key 1 in /DISK2/WWW/lipensky.cz/tomas/inc/auth.php on line 78 automatizace:jenkins [Tomas Lipensky - vedomostni koutek] Warning: Undefined array key "stylesheets" in /DISK2/WWW/lipensky.cz/tomas/inc/StyleUtils.php on line 102
Warning: Undefined array key -1 in /DISK2/WWW/lipensky.cz/tomas/inc/html.php on line 1458

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 [2026/01/02 12:34] (current)
tomas [API]
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 25: Line 34:
 https://SERVER/job/SLOZKA/job/SLOZKA/job/deployer/457/consoleText ... výstup z konzole jobu 457 v textové formě\\ https://SERVER/job/SLOZKA/job/SLOZKA/job/deployer/457/consoleText ... výstup z konzole jobu 457 v textové formě\\
 https://SERVER/job/SLOZKA/job/SLOZKA/job/deployer/457/consoleFull ... výstup z konzole jobu 457 v HTML formě\\ https://SERVER/job/SLOZKA/job/SLOZKA/job/deployer/457/consoleFull ... výstup z konzole jobu 457 v HTML formě\\
 +https://SERVER/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins ... seznam pluginů a jejich verzí\\
 ==== Skripty Groovy ==== ==== Skripty Groovy ====
 [[https://groovy-lang.org/documentation.html|Groovy]] jazyk\\ [[https://groovy-lang.org/documentation.html|Groovy]] jazyk\\
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\\