Skip to content

Command line client for Carina™

License

Notifications You must be signed in to change notification settings

getcarina/carina

Repository files navigation

Carina™ client

Travis Build Status MyGet Build Status

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

Carina Constellation

See the official documentation and an overview of Carina.

Building

The build script assumes you're running go 1.7 or later. If not, upgrade or use something like gimme.

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.
  2. Make required changes to libcarina in $GOPATH/src/github.com/getcarina/libcarina.
  3. 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.
  4. When everything is looking good, run make in $GOPATH/src/github.com/getcarina/libcarina to validate and format your changes.
  5. Submit a PR to libcarina and once it is merged to master, note the commit hash.
  6. 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.
  7. 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

  2. Create a tag for the beta release: git tag v2.0.0-beta.8 -a -m ""

  3. Push the tag: git push --follow-tags

  4. Watch the Travis CI build, and wait for a successful deploy.

  5. 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