Github Xcode Bot Builder
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.
Setup
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.
Create a ~/.bot-sync-github.cfg
Go to your Github Account Settings and create a personal access token which you will use as your github_access_token so that the bot-sync-github script can access your github repo
github_access_token = 57244a72a7ca33931a40eb4ec21621505ab9f6b3
github_url = https://github.com/someuser/Some-Repo.git
github_repo = someuser/Some-Repo
xcode_server = 192.168.10.123
xcode_devices = iphonesimulator iPhone Retina (4-inch) 7.0|iphonesimulator iPhone Retina (4-inch) 6.1
xcode_scheme = Some-Scheme-Name-app
xcode_project_or_workspace = SomeProject.xcworkspace # or SomeProject.xcproject
Note that xcode_devices need to be pipe delimited. To get the list of available devices run the bot-devices command. The xcode_server can either be an ip address or a hostname.
Manually run bot-sync-github from the command line to make sure it works
Schedule bot-sync-github to run in cron every couple of minutes. 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
Troubleshooting
Send us a pull request with your troubleshooting tips here!
Contributing
- Github Xcode Bot Builder uses Jeweler 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 latest master 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
Suggested features to contribute
- Support for configuring username and password to use with your Xcode server
- Add specs that use VCR to help us add test coverage
- Add support for multiple repositories
- Add better error handling
- Update this README.md to make it easier for new users to get started and troubleshoot
Contributors
Copyright
Copyright (c) 2013 ModCloth. See LICENSE for further details.