Skip to content

Commit

Permalink
added info about reverse engineering Xcode Server
Browse files Browse the repository at this point in the history
  • Loading branch information
Honza Dvorsky committed May 4, 2015
1 parent 53349e2 commit c400d37
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ Contributing
------------
Please create an issue with a description of a problem or a pull request with a fix. I'll see what I can do ;-)

Xcode Server Reverse Engineering
--------------------------------
If you're feeling brave and would like to dig into how Xcode Server works under the hood, you might find these useful:
- `/Applications/Xcode.app/Contents/Developer/usr/share/xcs` - this is where all Xcode Server files live inside of Xcode
- `http://localhost:10355/_utils/` - browse Xcode Server's CouchDB database, where it stores all the information about bots, integrations etc. It also uses its map-reduce capabilities to quickly filter data for an API request (e.g. give me all successful integrations of this bot)
- `/Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcsd` - the source of Xcode Server's Express Node.js app, which is its API server.
- `/Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcsd/routes/routes.js` - all of Xcode Server's API endpoints, this is what we talk to from Buildasaur to create bots, start integrations and find out results of builds
- `$ redis-cli -p 10356` - a way to connect to Xcode Server's Redis database, which it uses as an in-memory cache for all of its jobs. You can see running integration metadata etc.
- `/Applications/Xcode.app/Contents/Developer/usr/share/xcs/xcswebui/` - this is where Xcode Server's UI files live. You can find the javascript and HTML files for the browser UI, including the dashboard big screen.

If you end up modifying any of the files mentioned above, in order for Xcode Server to reload them, you need to go to OS X Server, to the Xcode section and with the giant green button turn it off and back on. This restarts all the tasks and reloads source files from disk.

License
-------
MIT
Expand Down

0 comments on commit c400d37

Please sign in to comment.