This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
automatizace:jenkins [2023/03/30 17:41] tomas |
automatizace:jenkins [2026/01/02 12:34] (current) tomas [API] |
||
|---|---|---|---|
| Line 9: | Line 9: | ||
| [[http:// | [[http:// | ||
| + | ==== Dokumentace ==== | ||
| + | JENKINS_URL/ | ||
| + | / | ||
| + | /api\\ | ||
| + | /script ... scriptovaci konzole\\ | ||
| + | / | ||
| + | |||
| + | ====Jenkins CLI==== | ||
| + | java -jar jenkins-cli.jar -s http:// | ||
| ==== API ==== | ==== API ==== | ||
| curl -u UZIVATEL: | curl -u UZIVATEL: | ||
| Line 25: | Line 34: | ||
| https:// | https:// | ||
| https:// | https:// | ||
| + | https:// | ||
| ==== Skripty Groovy ==== | ==== Skripty Groovy ==== | ||
| [[https:// | [[https:// | ||
| - | [[https:// | + | [[https:// |
| === Kostra kódu === | === Kostra kódu === | ||
| + | kdekoliv může být definice proměnné, ne jen v environment sekci: | ||
| + | def skipPublishDefault = (BRANCH_NAME == ' | ||
| + | |||
| < | < | ||
| @Library([path]) | @Library([path]) | ||
| Line 36: | Line 48: | ||
| agent none // | agent none // | ||
| options {} | options {} | ||
| + | triggers {} | ||
| parameters {} | parameters {} | ||
| environment {} | environment {} | ||
| stages { | stages { | ||
| - | stage { | + | stage {} |
| - | | + | |
| - | } | + | |
| } | } | ||
| post {} | post {} | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | nebo když se nedefinuje akce souborem ale v UI: | ||
| + | |||
| + | < | ||
| + | node { | ||
| + | stage {} | ||
| + | stage {} | ||
| } | } | ||
| </ | </ | ||
| === sekce agent === | === sekce agent === | ||
| + | label " | ||
| + | |||
| + | any ... jakykoliv | ||
| + | |||
| + | none ... žádný agent se nealokuje | ||
| + | |||
| + | node {} ... jak label, ale umožňuje další možnosti, vice na [[https:// | ||
| + | |||
| + | < | ||
| + | image ' | ||
| + | label ' | ||
| + | args '-v /tmp' | ||
| + | registryUrl ' | ||
| + | registryCredentialsId ' | ||
| + | }</ | ||
| + | |||
| + | dockerfile {} ... vice na [[https:// | ||
| + | |||
| + | < | ||
| + | label " | ||
| + | defaultContainer " | ||
| + | yaml libraryResource(" | ||
| + | }</ | ||
| + | |||
| + | |||
| + | === tools === | ||
| + | sekce v pipeline, nainstaluje pro běh na agentovi nástroj dané verze: maven, jdk, gradle | ||
| + | |||
| + | === sekce triggers === | ||
| + | cron cron(' | ||
| + | |||
| + | pollSCM(' | ||
| + | |||
| + | upstream(upstreamProjects: | ||
| + | |||
| + | |||
| === sekce options === | === sekce options === | ||
| + | Parametry celkového běhu, komplet popis viz [[https:// | ||
| + | |||
| + | disableConcurrentBuilds()\\ | ||
| + | buildDiscarder(logRotator(numToKeepStr: | ||
| + | timeout(time: | ||
| + | timestamps ()\\ | ||
| + | |||
| === sekce parameters === | === sekce parameters === | ||
| + | vstupní parametry pro běh pipeliny | ||
| + | |||
| + | '' | ||
| + | '' | ||
| + | '' | ||
| + | OPTIONAL | ||
| + | Reload this pipeline from pipeline definition, parameters etc.""" | ||
| + | text(name: ' | ||
| + | password(name: | ||
| + | |||
| === sekce environment === | === sekce environment === | ||
| - | === sekce stages === | + | Proměnné, přistupuje se k nim přes ${TARGET} |
| + | |||
| + | KLIC = ' | ||
| + | SETTINGS_XML = credentials(' | ||
| + | |||
| + | === sekce stage === | ||
| + | agent {} ... viz sekce agent\\ | ||
| + | when {} ... podmínka, kdy step jede a jestli\\ | ||
| + | environment {} ... viz sekce environment\\ | ||
| + | options {} ... parametry pro stage, jako trřeba timeout, více na [[https:// | ||
| + | input {} ... uživatlský vstup\\ | ||
| + | stages | ||
| + | try {} catch () {}\\ | ||
| + | for (int i = 0; i < browsers.size(); | ||
| + | |||
| + | === sekce when === | ||
| + | beforeAgent true\\ | ||
| + | expression { !params.SPUSTIT && BRANCH ==~ / | ||
| + | |||
| + | === sekce steps === | ||
| + | script {} ... umožnuje vnořit akce, včetně smyček atd.\\ | ||
| + | if (sharedTools.shouldRun(" | ||
| + | dir(' | ||
| + | script {} ... posloupnost akcí v {}\\ | ||
| + | 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([file(credentialsId: | ||
| + | withCredentials([ string(credentialsId: | ||
| + | %%withCredentials([ usernamePassword(credentialsId: | ||
| + | withNPM(npmrcConfig: | ||
| + | %%checkout([$class: | ||
| + | withDockerRegistry([credentialsId: | ||
| + | |||
| + | < | ||
| + | script { | ||
| + | echo "Ctu soubor ' | ||
| + | servers = readJSON(file: | ||
| + | |||
| + | |||
| + | === sekce post === | ||
| + | Je buď ve sekci pipelines, nebo steps, více viz [[https:// | ||
| + | |||
| + | always {} ...vždy\\ | ||
| + | changed {} ... jen když se změnil status od minulého běhu (success > fail např.)\\ | ||
| + | fixed {} ... \\ | ||
| + | regression {} ...\\ | ||
| + | aborted {} ... jen, když se běh přeruší\\ | ||
| + | success {} ... jen když vše bylo v pořádku\\ | ||
| + | unstable {} ...\\ | ||
| + | unsuccessful {} ...\\ | ||
| + | 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 | ||