Jenkins & the Cloud A Match Made in Heaven
description
Transcript of Jenkins & the Cloud A Match Made in Heaven
![Page 1: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/1.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Jenkins & the CloudA Match Made in Heaven
Ryan CampbellKohsuke Kawaguchi
CloudBees, Inc.http://cloudbees.com/
![Page 2: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/2.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Who are we?
Ryan Campbell– @recampbell– Main guy behind DEV@cloud
Kohsuke Kawaguchi– @kohsukekawa– Main guy behind Jenkins, Nectar, and helping
other Jenkins efforts in CloudBees when I can
![Page 3: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/3.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Jenkins, back in 2006
• Distributed builds support
![Page 4: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/4.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Elasticity
![Page 5: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/5.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Cloud Ladder
![Page 6: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/6.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Talking the talk≠
Walking the walk
![Page 7: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/7.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
What is DEV@Cloud Private Edition?
• Jenkins as a service, for intranet• Revolves around MetaNectar– Controls many Jenkins
• Same extensibility
Meta Nectar
![Page 8: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/8.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
What is DEV@Cloud Public Edition?
• Jenkins as a Service – 1000’s of masters– More than 1,000,000 build minutes served
• Forge – Git, SVN, Maven
• Ecosystem– Sonar– SauceLabs– Artifactory
![Page 9: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/9.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
JENKINS AT SCALE: LESSONS LEARNED
![Page 10: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/10.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Problem: Configuration Management
• What do we mean?– Preparing slaves into the right shape – Preparing masters into the right shape– Keeping them in good shape
![Page 11: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/11.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Jenkins does a lot
• Tool installer extension point– Automatically install build tools– Grown from 3 to 8 in this year
• Slave Setup Plugin– Let you run arbitrary shell script upon the slave
connection– Great way to run Puppet
![Page 12: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/12.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
But Jenkins can’t do it all…
• Base image configuration• Master provisioning• Other server types
![Page 13: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/13.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
How we did in DEV@cloud
• Chef– Declarative – Idempotent– Extensible
• Using Ruby
– Composable
package “httpd”cookbook_file “/etc/httpd.conf” do
source “myconfig”endservice “httpd” do action :startend
![Page 14: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/14.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Chef architecture
chef-server
slavesweb-tier
masters
![Page 15: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/15.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Chef Pro Tips
• Build from source, but ship pre-baked images (ie, AMI’s in ec2) for fast, reliable provisioning
• Let nodes self-register with Chef server for painless elasticity– You can do this in /etc/chef/client.rb
![Page 16: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/16.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Jenkins and Chef/Puppet
• Checkout the Chef Recipes for Jenkins– Configure masters, slaves, even jobs
• Same for puppet
![Page 17: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/17.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
And DEV@cloud Private Edition
• Clone templates in VMWare– Works well with “dumb” approach– Works well with puppet/chef, too– Of course, this is pluggable
![Page 18: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/18.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Problem: Slave Provisioning
• Yes, we had extension points• But someone needs to implement them
![Page 19: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/19.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
OSS Implementations
• EC2 Plugin– Fully functioning, worked as example for others
• Several provider-neutral plugins– Delta Cloud API– JClouds
• VMWare Lab Manager, libvirt, etc.• Wish list: vagrant plugin!
![Page 20: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/20.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Slave Provisioning - DEV@Cloud Public
• Implements Cloud extension point• Providore!• Uses JClouds to talk to EC2– Bonus tip: Use cloud libraries such as jclouds
and fog instead of directly using provider’s API
• Pools slave instances• Manages slave lifecycle
![Page 21: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/21.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Provision from Pool
slave pool
providore
request slave
reuse
![Page 22: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/22.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Or provision from ec2
ec2 api
providore
request slave
provision
Cloud mantra:• Degrade gracefully when cloud API’s are
unavailable. Learn to live without them.
![Page 23: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/23.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Initialize and authorize
providore
slave
1. Attach workspace
2. Authorize master
![Page 24: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/24.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Attach slave to master
providore
1. Notify master
2. Connect via SSH
slave
![Page 25: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/25.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Release and Recycle
providore
1. Release slave
2. Reset and recycle
slave
![Page 26: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/26.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Demo
![Page 27: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/27.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Slave Pooling in DEV@Cloud Private
• Slaves can be owned by MetaNectar
Meta Nectar
![Page 28: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/28.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Slave Pooling in DEV@Cloud Private
• Then it gets leased to Jenkins
Meta Nectar
![Page 29: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/29.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Slave Pooling in DEV@Cloud Private
• After use it can go back to pool
Meta Nectar
![Page 30: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/30.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Benefits
• Even out use by different teams– Works with not-so-elastic infrastructure
• MetaNectar could scrub instances– Anything from no-op to revert to snapshot
![Page 31: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/31.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Monitoring
• Why?– CI is the heart of the dev process– Trends, correlation
• How?– Nagios, Zenoss, Cacti, munin
![Page 32: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/32.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
DEV@Cloud Public Uses Nagios
• Extensible – author your own commands• Text based configuration – generate
configuration dynamically• Dependencies – prevents notification
storms when core services go down• Pager Duty integration
![Page 33: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/33.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
What to monitor
• Anything you want to work• What the user sees – the GUI/index page• Heap/Permgen• Load• Free disk space• Slave availability
curl http://jenkins/computer/api/json
![Page 34: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/34.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Groovy Queue Monitor
j = jenkins.model.Jenkins.instanceif(j.queue.items.length > 50)
println(“WARNING, queue clogging”)
$ curl -u “user:pass” -data-urlencode \ [email protected] \ http://jenkins/scriptText |
grep WARNING
![Page 35: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/35.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Problem: Managing Plugins
• Particularly important aspect of configuration mgmt
• Bigger environment often uses proprietary plugins
• Consistency across masters help reduce the support overhead
![Page 36: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/36.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Managing Plugins: How
• Bundle them in the war– WEB-INF/plugins/*.hpi
• Lay them down during provisioning– WEB-INF/init.groovy– $JENKINS_HOME/init.groovy
![Page 37: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/37.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
What Jenkins offers
• Remotely install plugins via CLI or REST API$ export JENKINS_URL=http://my.jenkins/$ java -jar jenkins-cli.jar install-plugin \ git subversion chucknorris
$ java -jar jenkins-cli.jar install-plugin \ ./path/to/local.hpi
![Page 38: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/38.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Internal: Update Center vs. Sites
• Only one UpdateCenter– Jenkins.getInstance().getUpdateCenter()
• Aggregates Many Update Sites– Can be local or remote– Updated using user’s browser if remote
• Consider https
![Page 39: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/39.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Custom Update Site
• Use https://github.com/jenkinsci/backend-update-center2
• Use Maven to find plugins– Internal– External
• Signature is required– Jenkins has to have your certificate, too
• Also see: simple Update Site plugin– More about this in lightning talk later
![Page 40: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/40.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
In DEV@PE
• We’ve built UI around it
![Page 41: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/41.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
DEV@Cloud Private: Plugin Management
• Blacklisting– Known issues in your environment
• Forced installation– Sometimes with configuration
![Page 42: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/42.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Problem: One-time work, or is it?
• Setting up Jenkins is no longer one-time work if you have many masters– Ripe for productivity gain
• By “setting up” I mean:– Seed SCM credentials– Configure JIRA, Sonar, Sventon, … plugins
![Page 43: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/43.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
One-time work, or is it?
• Groovy script can be used to configure plugins
• Extension point to customize behaviors– MailAddressResolver– Subtyping existing plugins to reduce/infer config– Custom ToolInstallers
import …;j=Jenkins.instanced=j.getDescriptorByType(JiraProjectProperty)s=new JiraSite(“http://jira/”,”username”,”password”,…)d.setSites(s);
![Page 44: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/44.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
More Improvements Needed
• More improvements in core would help– Installing plugins without restart– Extension point for inferring SCM browser
• Setting up push notification from SCM repository to Jenkins?
![Page 45: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/45.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Conclusion
• Jenkins at scale has interesting challenges– Inevitable already in large organizations– Soon for everyone as computers get cheap
• What we did hopefully would inspire you
• Any questions?
![Page 46: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/46.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Thank You To Our SponsorsPlatinumSponsor
GoldSponsor
SilverSponsor
BronzeSponsors
Coming Soon: The CloudBees Newsletter for Jenkins
Please complete the Jenkins survey to help us better serve the community
(bonus: a chance to win an Apple TV!)
![Page 47: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/47.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Nothing to see here beyond this page.Please move on.
![Page 48: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/48.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Even More So in CI
• When you need it, you need it a lot– Matrix builds– Downstream builds– Parallel tests
• You want result now
http://www.flickr.com/photos/19188303@N02/4801131166/http://www.flickr.com/photos/ingmar/3989770916/
![Page 49: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/49.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
But when you don’t
• Sitting idle, wasting electricity– Most weekends– Late night and morning
http://www.flickr.com/photos/19188303@N02/4801131166/http://www.flickr.com/photos/airdiogo/5655143413/
![Page 50: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/50.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
![Page 51: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/51.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Sparc Roadmap
![Page 52: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/52.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Horizontal Scaling
• Google 1,000,000 (?)• Facebook 70,000• 1&1 Internet 70,000• Rackspace 56,000• Microsoft, Amazon,
Yahoo, IBM, …
![Page 53: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/53.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
http://www.flickr.com/photos/19188303@N02/4801131166/
![Page 54: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/54.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Jenkins, back in 2009
![Page 55: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/55.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
Dynamic Slave Provisioning
55
time
# o
f exe
cuto
rs
capacity
usage
![Page 56: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/56.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
ALM integration
• Spin up new projects quickly• Dynamically integrate ALM services as
they are provisioned• Examples– SCM, Sonar, mvn Repository Managers, or
external tools like SauceLabs
• Automatically install & configure plugin
![Page 57: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/57.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
SCM Repository Integration
• Jenkins is a person identity, too!– Separate from user identity– Git
• SSH public/private keys
– SVN • Implement SubversionCredentialProvider
• Standard Commit Hooks– DIE POLLING DIE– Challenge: How do we automate this?
![Page 58: Jenkins & the Cloud A Match Made in Heaven](https://reader036.fdocuments.net/reader036/viewer/2022062517/56813ae6550346895da34402/html5/thumbnails/58.jpg)
Jenkins User Conference San Francisco, Oct 2nd 2011 #jenkinsconf
ALM Tool Integration Example
• Sonar instance per Jenkins• Use CLI to install plugins• Use Groovy script to configure plugin• FIXME – the script below
• Feature request ;-)– Plugin installation without restart
S = new SonarInstallation(“mysql:url”,”username”,”password”)Jenkins.instance.getDescriptorByName(“”)sonarDescriptor.setInstallations(s);