- PDF Link: cheatsheet-jenkins-groovy-A4.pdf, Category: languages
- Blog URL: https://cheatsheet.dennyzhang.com/cheatsheet-jenkins-groovy-A4
- Related posts: Jenkins CheatSheet, #denny-cheatsheets
File me Issues or star this repo.
Name | Comment |
---|---|
Set timezone for jenkins | timezone.groovy |
Create jenkins views and add jobs to it | jenkins-views.groovy |
Configure default view | jenkins-views.groovy |
Create a Jenkins user | create-jenkins-user.groovy |
Groovy manages files/folders | files-folder.groovy |
Configure max executors in Jenkins | master-executors.groovy |
Add a list of jobs by regexp to a view | addjobstoview-byregexp.groovy |
Config jenkins kubernetes plugin | jenkins-kubernetes-cloud.groovy |
Configure slack plugin | config-slack.groovy |
List all jenkins jobs | println Jenkins.instance.projects.collect { it.name } |
Reference | GitHub: cloudbees/jenkins-scripts |
Reference | GitHub: jenkinsci/pipeline-examples |
Name | Comment |
---|---|
logged-in users can do anything | logged-in-users.groovy |
Enable ldap in Jenkins | enable-ldap.groovy |
Create a jenkins secret text | create-secret-text.groovy |
Configure authorization in Jenkins | matrix-authorization-strategy.groovy |
Jenkins skip wizzard when initialization | -Djenkins.install.runSetupWizard=false |
Name | Comment |
---|---|
Add default jobs | Copy jobs/ /usr/share/jenkins/ref/jobs/ |
Copy custom built plugins | COPY plugins/*.hpi /usr/share/jenkins/ref/plugins/ |
Use jenkins cli | COPY config/jenkins.properties /usr/share/jenkins/ref/ |
Add jenkins groovy scripts | COPY config/*.groovy /usr/share/jenkins/ref/init.groovy.d/ |
Configure Jenkins with some defaults | COPY config/*.xml /usr/share/jenkins/ref/ |
Install jenkins plugins | /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt |
Plugin | Summary |
---|---|
Kubernetes Plugin | Jenkins plugin to run dynamic agents in a Kubernetes/Docker environment |
Credentials Plugin | Load the ssh key |
SiteMonitor Plugin | Monitor URLs |
Timestamper Plugin | Add timestamp to job output |
Dashboard View Plugin | Create dashboard |
Build-timeout Plugin | Abort if job takes too long |
Naginator Plugin | Retry failed a job |
ThinBackup Plugin | Backup jenkins |
JobConfigHistory Plugin | Backup job configuration |
Build User Vars Plugin | Describe the user who started the build |
Name | Comment |
---|---|
Get hostname | println InetAddress.localHost.canonicalHostName |
Get IP address | println InetAddress.localHost.hostAddress |
Name | Comment |
---|---|
Specify parameter to run jobs | build job:'job1', parameters:[string(name:'name1', value:va1)] |
Run job in different agents | node($agent_label) {...} |
Ask for user input | stage('stage2'){ input "OK to go?" } |
Actively fail current pipeline job | error("Build failed because of this and that..") |
Keep going when previous stage has failed | keep-going-with-errors.groovy |
Send slack notification in pipeline | slack-notification.groovy |
Pass parameter across jenkins jobs | jenkinsfile-pass-parameter.groovy |
Set timeout & retry | jenkinsfile-timeout-retry.groovy |
Use finally to do cleanup | jenkinsfile-finally.groovy |
Run jenkins jobs in a sequential way | jenkinsfile-sequentially.groovy |
Run jenkins jobs in parallel | jenkinsfile-parallelly.groovy |
Name | Comment |
---|---|
Kubernetes Plugin | Jenkins plugin to run dynamic agents in a Kubernetes/Docker environment |
Config jenkins kubernetes plugin | jenkins-kubernetes-cloud.groovy |
Cleanup for Docker stale containers/images/volumes | docker-cleanup.groovy |
Name | Comment |
---|---|
Get environment variables | get-env.groovy |
Print stdout | echo ‘Action is done’, println “Hello World” |
Use boolean parameter | if (istrue == “false”) {…} |
Basic integer caculation | def a = 3, b = 7; println “$a + |
Run groovy online | SaaS: Groovy Web console |
Run groovy script from Jenkins | Link: Jenkins Script Console |
Reference | Link: Apache Groovy |
Name | Comment |
---|---|
Convert list to string | l.join(";") |
Create string with multi-lines | multi-line-string.groovy |
Convert string to list | split-string.groovy |
Convert string to json | string-to-json.groovy |
Regex match | regexp-match.groovy |
Name | Comment |
---|---|
Iterate a list | for(item in [1,2,3,4]){ println item } |
Iterate a list | (1..3).each { println "Number ${it}"} |
Add item to list | def alist = [10, 9, 8]; alist << 7 |
List size | def alist = [10, 9, 8]; alist.size() |
Split string with delimiter | '1128-2'.tokenize( '-' ) |
Name | Comment |
---|---|
Read file content as a variable | def env = System.getenv() , def content = readFile("/tmp/test.txt") |
Read and write json files | json-file.groovy |
Name | Comment |
---|---|
Create a map | def m = ['fruit':'Apple', 'veggie':'Carrot'] |
Add an item to map | m.put('denny','hello') |
Check if key exists | m.containsKey('key1') |
Loop a map | loop-map.groovy |
Name | Comment |
---|---|
Get hostname by ip | get-ip-by-hostname.groovy |
validate user input: ip address | assert ip_address.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}") |
Name | Comment |
---|---|
Date to string | new Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone("UTC")) |
String to date | Date.parse("yyyy-MM-dd'T'HH:mm:ss'Z'", "2001-01-01T00:00:00Z") |
String to date | Date.parse("yyyy-MM-dd'T'HH:mm:ssZ", "2001-01-01T00:00:00+0000") |
Name | Command |
---|---|
Print message to stdout | See print.groovy |
Get environment variables | See get-env.groovy |
Convert string to list | See split-string.groovy |
Create string with multi-lines | See multi-line-string.groovy |
Loop a map | See loop-map.groovy |
Get hostname by ip | See get-ip-by-hostname.groovy |
Convert list to string | l.join(";") , link: groovy list |
Name | Comment |
---|---|
Deploy Jenkins via docker | https://hub.docker.com/r/jenkins/jenkins/ |
Clean up old builds | Link: CloudBees Best Strategy for Disk Space Management |
http://groovy-lang.org/documentation.html#gettingstarted
https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Syntax-Reference
https://github.com/fabric8io/jenkins-docker
License: Code is licensed under MIT License.
https://jenkins.io/doc/book/blueocean/getting-started/#as-part-of-jenkins-in-docker