- Notifications
You must be signed in to change notification settings - Fork15
License
modcloth-labs/github-xcode-bot-builder
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A command line tool that creates/manages/deletes Xcode 5 server bots for each Github pull request.When a pull request is opened a corresponding Xcode bot is created.When a new commit is pushed the bot is re-run.When the build finishes the github pull request status is updated with a comment if there's an error.Users can request that a pull request be retested by adding a comment that includes the word "retest" (case insensitive).When a pull request is closed the corresponding bot is deleted.
Make sure your Xcode server is correctly setup to allow ANYONE to create a build (without a username or password, see suggested features below). Then make sure you can manually create and execute a build and run it.
Install XCode Command Line tools
xcode-select --install
Clone the github-xcode-bot-builder repository and run bundle install.
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install
Go to yourGithub Account Settings and create a personal access token whichyou will use as yourgithub_access_token so that thebot-sync-github script can access your github repo
Create a ~/xcode_bot_builder.json
The example below shows two projects, one project running a single scheme, the other running two different schemes. The pull request will not be marked successful, unless both schemes pass.
{ "github_access_token": "0123456789012345678901234567890123456789", "xcode_server": "192.168.1.1", "repos": [ { "github_repo": "org/project1", "project_or_workspace": "project1.xcodeproj", "bots": [ { "scheme": "Project1", "run_analyzer": true, "run_test": true, "create_archive": true, "unit_test_devices": [ "iphonesimulator iPhone Retina (4-inch) 7.1", "iphonesimulator iPhone Retina (4-inch 64-bit) 7.1" ] } ] }, { "github_repo": "org/project2", "project_or_workspace": "project2.xcodeproj", "bots": [ { "scheme": "Project2", "run_analyzer": true, "run_test": false, "create_archive": false, "unit_test_devices": [ "iphonesimulator iPhone Retina (4-inch) 7.1" ] }, { "scheme": "Project2Tests", "run_analyzer": false, "run_test": true, "create_archive": false, "unit_test_devices": [ "iphonesimulator iPhone Retina (4-inch) 7.1", "iphonesimulator iPhone Retina (4-inch 64-bit) 7.1" ] } ] } ]}
The api_endpoint and web_endpoint urls can be configured if you use a github enterprise setup, otherwise they can be omitted.
Manually runbot-sync-github from the command line to make sure it works. If you have any open pull requests, a bot should have been created, and the integration started.
Schedulebot-sync-github to run in cron every couple of minutes. Apple's strongly encourages the use oflaunchd.
A simple way to have it sync every 60 seconds is to put the following in /Library/LaunchDaemons/com.example.github-xcode-bot-builder.plist
The example has everything installed under the user xcodebots. If you use another user you'll want to modify the user, as well as the Label to match your organization
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>Label</key> <string>com.example.github-xcode-bot-builder</string> <key>UserName</key> <string>xcodebots</string> <key>ProgramArguments</key> <array> <string>/Users/xcodebots/github-xcode-bot-builder/bin/bot-sync-github</string> </array> <key>StartInterval</key> <integer>60</integer> <key>RunAtLoad</key> <true/> <key>StandardOutPath</key> <string>/tmp/github-xcode-bot-builder.log</string></dict></plist>
Then to start:
sudo launchctl load /Library/LaunchDaemons/com.example.github-xcode-bot-builder.plist
If you want to stop:
sudo launchctl unload /Library/LaunchDaemons/com.example.github-xcode-bot-builder.plist
You can also use cron. For example, if you're using RVM:
*/2 * * * * $HOME/.rvm/bin/ruby-2.0.0-p247 $HOME/.rvm/gems/ruby-2.0.0-p247/bin/bot-sync-github >> /tmp/bot-sync-github.log 2>&1
Send us a pull request with your troubleshooting tips here!
- Github Xcode Bot Builder usesJeweler for managing the Gem, versioning,generating the Gemspec, etc. so do not manually edit the gemspec since it is auto generated from the Rakefile.
- Check out the latestmaster to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
- Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
- Fork the project.
- Start a feature/bugfix branch.
- Commit and push until you are happy with your contribution.
- Don't forget to add yourself to the contributors section below
- Support for configuring username and password to use with your Xcode server
- Add specs that use VCR to help us add test coverage
- Add better error handling
- Update this README.md to make it easier for new users to get started and troubleshoot
Copyright (c) 2013 ModCloth. See LICENSE for further details.
About
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.