Skip to content

skyhitnow/cheatsheet-jenkins-groovy-A4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1 CheatSheet: Jenkins & Groovy

linkedin
github
slack


PRs Welcome

File me Issues or star this repo.

1.1 Jenkins Pipeline

NameComment
Specify parameter to run jobsbuild job:'job1', parameters:[string(name:'name1', value:va1)]
Run job in different agentsnode($agent_label) {...}
Ask for user inputstage('stage2'){ input "OK to go?" }
Actively fail current pipeline joberror("Build failed because of this and that..")
Check whether property existsif (env.keep_failed_env)
Jenkins Pipeline enable timestampsoptions{timestamps()}
Keep going when previous stage has failedkeep-going-with-errors.groovy
Send slack notification in pipelineslack-notification.groovy
Pass parameter across jenkins jobsjenkinsfile-pass-parameter.groovy
Set timeout & retryjenkinsfile-timeout-retry.groovy
Use finally to do cleanupjenkinsfile-finally.groovy
Run jenkins jobs in a sequential wayjenkinsfile-sequentially.groovy
Run jenkins jobs in paralleljenkinsfile-parallelly.groovy
ReferenceLink: Syntax Reference, Link: Jenkins User Documentation
ReferenceLink: Example, Link: Example

1.2 Config Jenkins Via Groovy

NameComment
Set timezone for jenkinstimezone.groovy
Configure default viewjenkins-views.groovy
Configure Jenkins urljenkins-url.groovy
Create a Jenkins usercreate-jenkins-user.groovy
Groovy manages files/foldersfiles-folder.groovy
Configure max executors in Jenkinsmaster-executors.groovy
Configure slack pluginconfig-slack.groovy
ReferenceGitHub: cloudbees/jenkins-scripts, GitHub: jenkinsci/pipeline-examples

1.3 Jenkins Kubernetes Via Groovy

NameComment
Config jenkins kubernetes pluginjenkins-kubernetes-cloud.groovy
Validate Kubernetes jenkins setupvalidate-kubernetes-cloud.groovy

1.4 Jenkins View Via Groovy

NameComment
Add a list of jobs by regexp to a viewmyView.setIncludeRegex(".*Integration.*") addjobstoview-byregexp.groovy
Create jenkins views and add jobs to itjenkins-views.groovy
Add a view of build monitor view pluginbuild-monitor-views.xml

1.5 Jenkins Job Via Groovy

NameComment
List all my jenkins jobsprintln Jenkins.instance.projects.collect { it.name }
List all jenkins jobslist-all-jobs.groovy
Create and trigger a jobcreate-jenkins-job.groovy
Manage jenkins jobsmanage-jenkins-jobs.groovy
Cancel queued jenkins jobs by regexpkill-queued-jenkins.groovy

1.6 Jenkins Security Via Groovy

NameComment
logged-in users can do anythinglogged-in-users.groovy
Enable ldap in Jenkinsenable-ldap.groovy
Create a jenkins secret textcreate-secret-text.groovy
Configure authorization in Jenkinsmatrix-authorization-strategy.groovy
Jenkins skip wizzard when initialization-Djenkins.install.runSetupWizard=false

1.7 Load Jenkins settings via folder copy

NameComment
Add default jobsCopy jobs/ /usr/share/jenkins/ref/jobs/
Copy custom built pluginsCOPY plugins/*.hpi /usr/share/jenkins/ref/plugins/
Use jenkins cliCOPY config/jenkins.properties /usr/share/jenkins/ref/
Add jenkins groovy scriptsCOPY config/*.groovy /usr/share/jenkins/ref/init.groovy.d/
Configure Jenkins with some defaultsCOPY config/*.xml /usr/share/jenkins/ref/
Install jenkins plugins/usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

1.8 Jenkins Plugins

PluginSummary
Kubernetes PluginJenkins plugin to run dynamic agents in a Kubernetes/Docker environment
Credentials PluginLoad the ssh key
SiteMonitor PluginMonitor URLs
Timestamper PluginAdd timestamp to job output
Dashboard View PluginCreate dashboard
Build-timeout PluginAbort if job takes too long
Naginator PluginRetry failed a job
ThinBackup PluginBackup jenkins
JobConfigHistory PluginBackup job configuration
Build User Vars PluginDescribe the user who started the build

1.9 Jenkins Git Via Groovy

NameComment
Git checkout codegit-checkout.groovy
Get all git commits since last successgit-commits-before-fail.groovy
List git tags and branchesgit-list-tags-and-branches.groovy

1.10 Jenkins networking Via Groovy

NameComment
Get hostnameprintln InetAddress.localHost.canonicalHostName
Get IP addressprintln InetAddress.localHost.hostAddress
Get hostname by ipget-ip-by-hostname.groovy
validate user input: ip addressassert ip_address.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")

1.11 Jenkins with Kubernetes/Docker

NameComment
Kubernetes PluginJenkins plugin to run dynamic agents in a Kubernetes/Docker environment
Config jenkins kubernetes pluginjenkins-kubernetes-cloud.groovy
Cleanup for Docker stale containers/images/volumesdocker-cleanup.groovy

1.12 Groovy Basic

Name Comment
Get environment variables get-env.groovy
Groovy execute command execute-command.groovy
Print stdout print.groovy echo ‘Action is done’, println “Hello World”
Use boolean parameter if (istrue == “false”) {…}
Basic integer caculation def a = 3, b = 7; println “$a + $b = ${a + b}”
Run groovy online SaaS: Groovy Web console
Run groovy script from Jenkins Link: Jenkins Script Console
Reference Link: Apache Groovy

1.13 Groovy String/Regexp

NameComment
Check string startsWithassert s.startsWith("\t")
Trim whitespacess=s.trim()
Convert list to stringl.join(";")
Create string with multi-linesmulti-line-string.groovy
Convert string to listsplit-string.groovy
Convert string to jsonstring-to-json.groovy
Remove tagsinput.replaceAll("\\<.*?>","")
Regex matchregexp-match.groovy

1.14 Groovy Array

NameComment
Iterate a listfor(item in [1,2,3,4]){ println item }
Iterate a list(1..3).each { println "Number ${it}"}
Add item to listdef alist = [10, 9, 8]; alist << 7
List sizedef alist = [10, 9, 8]; alist.size()
Split string with delimiter'1128-2'.tokenize( '-' )

1.15 Groovy File

NameComment
Read file into a stringString fileContents = new File('/tmp/test.txt).text
Read file content as a variabledef env = System.getenv(), def content = readFile("/tmp/test.txt")
Write file in pipelinewriteFile file: "output/my.txt", text: "This is a test"
Read and write json filesjson-file.groovy
Obtain a relative pathrelative-path.groovy

1.16 Groovy Dictionary

NameComment
Create a mapdef m = ['fruit':'Apple', 'veggie':'Carrot']
Add an item to mapm.put('denny','hello')
Check if key existsm.containsKey('key1')
Loop a maploop-map.groovy

1.17 Groovy json

NameComment
Convert string to jsonstring-to-json.groovy
Convert dictionary to jsondict-to-json.groovy
Read and write json filesjson-file.groovy

1.18 Groovy Date

NameComment
Date to stringnew Date().format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone("UTC"))
String to dateDate.parse("yyyy-MM-dd'T'HH:mm:ss'Z'", "2001-01-01T00:00:00Z")
String to dateDate.parse("yyyy-MM-dd'T'HH:mm:ssZ", "2001-01-01T00:00:00+0000")

1.19 Jenkins Agent

NameComment
Check jenkins slave jar versioncheck-slave-jar-version.groovy
Find dead executors and remove themfind-dead-executors.groovy
Set env for each agentset-agent-env.groovy

1.20 Jenkins Maintenance

NameComment
Delete jenkins job by regexpdelete-job-by-regexp.groovy
Deploy Jenkins via dockerhttps://hub.docker.com/r/jenkins/jenkins/
Clean up old buildsLink: CloudBees Best Strategy for Disk Space Management

1.21 More Resources

http://groovy-lang.org/documentation.html#gettingstarted

https://github.com/fabric8io/jenkins-docker

License: Code is licensed under MIT License.

linkedin github slack

About

📖 Groovy CheatSheet For Jenkins Usage In A4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Groovy 98.0%
  • Shell 2.0%