Showing posts with label Jenkins. Show all posts
Showing posts with label Jenkins. Show all posts

Sunday, March 6, 2016

Using Jenkins-cli to migrate your Jenkins server

Last week I spent some time to setup a new jenkins server, I need to migrate from the old server to new server, including:
 -  install all the plugins,
 -  and import all the jenkins jobs from the old server to the new server.
I found jenkins-cli is so powerful and so easy to use, it is a big helper. Now I would like to share how I use this powerful tool.

Download jenkins-cli
 You can download the JAR file for the client from the URL "/jnlpJars/jenkins-cli.jar" on your Jenkins server, e.g. http://jenkins.example.com/jnlpJars/jenkins-cli.jar

List plugins
   java -jar jenkins-cli.jar -s http://your-jenkins-server/ list-plugins

Migrate the plugins
To install plugins which are installed in the old servers, use the following command:
      java -jar jenkins-cli.jar -s http://old-jenkins-server/ list-plugins | awk '{print $1}' | xargs java -jar jenkins-cli.jar -s http://new-jenkins-server/ install-plugin

Migrate the jenkins jobs
   java -jar jenkins-cli.jar -s http://old-jenkins-server/ get-job "my job" > my_job.xml
   java -jar jenkins-cli.jar -s http://new-jenkins-server/ create-job "my job" < my_job.xml

Saturday, September 15, 2012

Fix the iOS code signing issue when using Jenkins


This week I setup the Jenkins on my Mac and try to build iOS applications. unfortunately I got the code signing issues, either I use xcode plugin or xcode command line tool. Through a couple days of googling and I could not find any solution that works for me, but I finally solve this issue by myself through different try out, and the solution is such an easy, now I would like to share with my solution.

The core reason is Jenkins is running as daemon mode in Mac, just assume it is a different user - "Jenkins", so it will not have access to the keychain or provision profile as a you login using your credentials, which cause the code signing issue.
I found I have following 2 errors

1. "Code Sign error: There are no valid certificate/private key pairs in the default keychain"
Solution: Copy your iPhone developer certificate from "login" keychain to "System" keychain.
Detailed steps:
  open the "Keychain Access" application, click the login tab, right click the certificate like "iPhone Developer: your_name (XXXXXXX)", choose copy, then click the "System" tab, right click mouse, choose "Paste 2 items"; you might need to do the same thing with the certificate like "iPhone Distribution: your_name".

After doing this, you will get the second error.
2. "Code Sign error: Provisioning profile 'xxxxx-xxxx-xxxx-xxxxx' can't be found"
Solution: Copy the provision profile to Jenkins user folder.
The provision profile is under in the folder
/YourUserName/Library/MobileDevice/Provisioning Profiles,
for example in my machine, the provision profile files are under /Users/steve/Library/MobileDevice/Provisioning Profiles
In the mac, the Jenkins will be in /Users/Shared/Jenkins, create the following folder:
/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profile,  then copy the .mobileprovision file to this folder.

After doing this, the code signing issues will be fixed. Hope my finding will be helpful to other Jenkins users.