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
Last revision Both sides next revision
automatizace:jenkins [2023/03/30 19:18]
tomas [Skripty Groovy]
automatizace:jenkins [2024/02/15 19:19]
tomas [Dokumentace]
Line 8: Line 8:
 [[http://w3.devops.ibm.com/devops/#/toolchain/advanced/jenkins|Male edu o Jenkins]]\\ [[http://w3.devops.ibm.com/devops/#/toolchain/advanced/jenkins|Male edu o Jenkins]]\\
 [[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\\
  
 ==== API ==== ==== API ====
Line 129: Line 135:
 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 143:
  
 === 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\\ +%%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"' }%%\\
-echo '' ... nativni Jenkins funkce pro echo\\+
 withNPM(npmrcConfig: 'npmrcs-cz') {} ... použije file npmrcs-cz a udělá z něj .npmrc\\ 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']]])\\ +%%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"}\\+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 176:
 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\\