Skip to content

Quickly manage your Xcode Server & Bots from the command line

License

Notifications You must be signed in to change notification settings

buildasaurs/xcskarel

Repository files navigation

xcskarel

Travis Status Gem Version

License Blog Twitter Czechboy0

Quickly manage your Xcode Server & Bots from the command line.

✅ install

Clone the repo or install from RubyGems

sudo gem install xcskarel

🔩 usage

To see all options, run xcskarel --help.

bots

$ xcskarel bots --host 10.99.0.57
[
  {
    "_id": "02440afb1e7a51dc9795319121038f17",
    "name": "buildasaur-release"
  }
]

integrations

$ xcskarel integrations --bot "Builda Archiver" --host 192.168.1.64
[
  {
    "_id": "e5fed3c8bdf03d30278a016e64003a1d",
    "currentStep": "checkout",
    "number": 11
  },
  {
    "_id": "a3ad85e42b7b7edbf43f9dca4a14390f",
    "currentStep": "completed",
    "number": 10,
    "result": "checkout-error"
  }
]

status

$ xcskarel status --host 192.168.1.64
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
|                                                       https://192.168.1.64                                                       |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
| name                                             | id                               | branch  | current_step | result    | count |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
| Builda Archiver                                  | 6b3de48352a8126ce7e08ecf85093613 | master  | pending      |           | 11    |
| Builda On Commit                                 | 6c8d3225beff941b3a420554df16cb0d | master  | checkout     |           | 70    |
| BuildaBot [czechboy0/XcodeServerSDK] |-> swift-2 | 3ce25bc9ed5bfffb854947b02600166d | swift-2 | completed    | succeeded | 6     |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+

start an integration

$ xcskarel integrate --bot "Builda Archiver" --host 192.168.1.64
INFO [2015-09-03 17:04:59.14]: Successfully started integration 11 on Bot "Builda Archiver"
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
|                                                       https://192.168.1.64                                                       |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
| name                                             | id                               | branch  | current_step | result    | count |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+
| Builda Archiver                                  | 6b3de48352a8126ce7e08ecf85093613 | master  | pending      |           | 11    |
| Builda On Commit                                 | 6c8d3225beff941b3a420554df16cb0d | master  | checkout     |           | 70    |
| BuildaBot [czechboy0/XcodeServerSDK] |-> swift-2 | 3ce25bc9ed5bfffb854947b02600166d | swift-2 | completed    | succeeded | 6     |
+--------------------------------------------------+----------------------------------+---------+--------------+-----------+-------+

integration issues

$ xcskarel issues --bot "Buildasaur Bot"
{
  "buildServiceWarnings": [
    {
      "message": "An error occurred while building, so archiving was skipped."
    }
  ],
  "errors": {
    "unresolvedIssues": [
      {
        "message": "No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “7BJ2984YDK” were found."
      }
    ]
  }
}

you can also specify the Integration id like this xcskarel issues --integration 6b3de48352a8126ce7e08ecf85093613. When you specify a Bot id or a name, however, the last Integration is used.

manage bot configurations in your git repo

  • config list Lists the Xcode Bot configurations found in this folder
  • config new Starts the interactive process of creating a new config from an existing Bot
  • config show Opens the selected config for editing

others

  • xcskarel logs --host 10.99.0.57 --user honzadvorsky - prints build and control logs from the remote Xcode Server
  • xcskarel health --host 10.99.0.57 - health information of the server like uptime etc

server (wraps xcscontrol commands)

  • xcskarel server start - fully starts a local Xcode Server instance
  • xcskarel server stop - stops the local Xcode Server instance
  • xcskarel server restart - restarts the local Xcode Server instance
  • xcskarel server reset - stops and deletes the local Xcode Server instance

xcode

  • xcskarel xcode select - Interactive xcode-select, finds all local Xcode's and asks which you want to use from now on

options

Two options useful for all commands:

--no_pretty 
    Disables output JSON prettification
--no_filter 
    Prints full JSON payload for objects instead of just filtering the important ones

You can also use environment variables to specify your preferred server host and credentials with XCSKAREL_HOST, XCSKAREL_USER, and XCSKAREL_PASS. If no host is specified, localhost is used. To always use the server at, e.g. 192.168.1.64, just add this to your ~/.zshrc or ~/.bash_profile:

export XCSKAREL_HOST="192.168.1.64"

:octocat: my Xcode Server projects

💙 Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

💝 Contributing

Please create an issue with a description of a problem or a pull request with a fix.

✌️ License

MIT

👽 Author

Honza Dvorsky - http://honzadvorsky.com, @czechboy0