| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
automatizace:jenkins [2023/03/30 19:20] tomas [Skripty Groovy] |
automatizace:jenkins [2026/01/02 12:34] (current) tomas [API] |
| [[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\\ |
| 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\\ |
| 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]} " }\\ |
| |
| === 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> |
| |
| |
| 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\\ |