Added an ability to import *.developerprofile into a build #34

Merged
merged 7 commits into from Oct 2, 2013

Conversation

Projects
None yet
4 participants
Owner

kohsuke commented Aug 30, 2013

This change allows users to register their *.developerprofile (which contains provisioning profiles and code signing identities) as a credential, and import that into slaves prior to builds.

This way keeping the same set of code signing keys&certs on slaves become a lot easier.

Jenkins » xcode-plugin #70 SUCCESS
This pull request looks good
(what's this?)

Owner

jenkinsadmin commented Sep 22, 2013

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

@kohsuke kohsuke added a commit that referenced this pull request Oct 2, 2013

@kohsuke kohsuke Merge pull request #34 from kohsuke/master
Added an ability to import *.developerprofile into a build
a6af3fa

@kohsuke kohsuke merged commit a6af3fa into jenkinsci:master Oct 2, 2013

Was this working for you pre Mavericks?

I've got Jenkins all set up and this worked beautifully the first time but fails subsequently because security list-keychains is not displaying all keychains stored in ~/Library/Keychains. As a result the create fails because the check missed the existing keychain so it is not deleted.

Owner

kohsuke replied Nov 4, 2013

I've used Mountain Lion to develop this. But changes would be welcome. It sounds like maybe we could just look at files under ~/Library/Keychains?

tapi replied Nov 4, 2013

Since the file name is fixed within the function I used security delete-keychain ~/Library/Keychains/<keychain> in a preflight script.
Since it's going to be deleted anyway you can just call the delete without the check.

@tapi tapi commented on the diff Nov 4, 2013

src/main/java/au/com/rayh/DeveloperProfileLoader.java
+ }
+ }
+
+
+ args = new ArgumentListBuilder("security","create-keychain");
+ args.add("-p").addMasked(keychainPass);
+ args.add(keyChain);
+ invoke(launcher, listener, args, "Failed to create a keychain");
+
+ args = new ArgumentListBuilder("security","unlock-keychain");
+ args.add("-p").addMasked(keychainPass);
+ args.add(keyChain);
+ invoke(launcher, listener, args, "Failed to unlock keychain");
+
+ final FilePath secret = getSecretDir(build, keychainPass);
+ secret.unzipFrom(new ByteArrayInputStream(dp.getImage()));
@tapi

tapi Nov 4, 2013

Second issue I've found. Turns out the format for dev profiles changed between Xcode 4 and 5. If I export a dev profile from 5 I get an exception here, If I export it from 4 it work just fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment