Quickly manage your Xcode Server & Bots from the command line
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
fastlane
lib
scripts
spec
xcsconfig
.gitignore
.travis.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
xcskarel.gemspec

README.md

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