Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/getcarina/carina

Command line client for Carina™
https://github.com/getcarina/carina

carina

Last synced: 3 days ago
JSON representation

Command line client for Carina™

Awesome Lists containing this project

README

        

# Carina™ client
[![Travis Build Status](https://travis-ci.org/getcarina/carina.svg)](https://travis-ci.org/getcarina/carina)
[![MyGet Build Status](https://www.myget.org/BuildSource/Badge/rackspace?identifier=0f9b4abd-6ec9-4b29-aab5-541967d4d260)](https://www.myget.org/)

Create and interact with clusters on both Rackspace Public and Private Cloud.

![Carina Constellation](https://cloud.githubusercontent.com/assets/836375/10503963/e5bcca8c-72c0-11e5-8e14-2c1697297d7e.png)

See the [official documentation](https://getcarina.com/docs/reference/carina-cli/) and an [overview of Carina](https://getcarina.com/docs/overview-of-carina/).

## Building

The build script assumes you're running go 1.7 or later. If not, upgrade or use
something like [gimme](https://github.com/travis-ci/gimme).

```bash
make
```

This creates `carina` in the current directory (there is no `make install` currently).

**Make Targets**

* `make`: First run for newcomers.
* `make get-deps`: Retrieves dependencies into the `vendor/` directory using glide.
* `make validate`: Run tools like `fmt`.
* `make test`: Run unit tests.
* `make local`: Build for the current dev env, using whatever dependencies that happen to be on the local machine.
* `make cross-build`: The official build.

### Editing libcarina
Here's how to work on libcarina and the cli at the same time locally:

1. Run `go get github.com/getcarina/libcarina`.
1. Make required changes to libcarina in `$GOPATH/src/github.com/getcarina/libcarina`.
1. In `$GOPATH/src/github.com/getcarina/carina`, run `rm $GOPATH/src/github.com/getcarina/carina/vendor/github.com/getcarina/libcarina` so that Go will pickup your local edits, and not use the vendored version. Use `make local` to build. Don't use `make` as it will restore the vendored copy of libcarina, overriding your local changes.
1. When everything is looking good, run `make` in `$GOPATH/src/github.com/getcarina/libcarina` to validate and format your changes.
1. Submit a PR to libcarina and once it is merged to master, note the commit hash.
1. In `$GOPATH/src/github.com/getcarina/carina/glide.lock` update the commit hash for libcarina. Make sure you are editing the libcarina package and not libmakeswarm. They are same repository, but represent different branches.
1. In `$GOPATH/src/github.com/getcarina/carina`, run `make` and verify that libcarina is restored the right vendored commit hash and everything still works.

## Releasing

### Beta Builds
Here's how to release a beta build:

1. Checkout the release branch: `git checkout release/v2.0.0`
1. Create a tag for the beta release: `git tag v2.0.0-beta.8 -a -m ""`
1. Push the tag: `git push --follow-tags`
1. Watch the Travis CI build, and wait for a successful deploy.
1. Validate the uploaded binary

```
curl -sL https://download.getcarina.com/carina/beta/$(uname -s)/$(uname -m)/carina -o carina
chmod +x carina
./carina --version
# Should print the new version
```