Create and interact with clusters on both Rackspace Public and Private Cloud.
See the official documentation and an overview of Carina.
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 thevendor/
directory using glide.make validate
: Run tools likefmt
.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.
Here's how to work on libcarina and the cli at the same time locally:
- Run
go get github.com/getcarina/libcarina
. - Make required changes to libcarina in
$GOPATH/src/github.com/getcarina/libcarina
. - In
$GOPATH/src/github.com/getcarina/carina
, runrm $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. Usemake local
to build. Don't usemake
as it will restore the vendored copy of libcarina, overriding your local changes. - When everything is looking good, run
make
in$GOPATH/src/github.com/getcarina/libcarina
to validate and format your changes. - Submit a PR to libcarina and once it is merged to master, note the commit hash.
- 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. - In
$GOPATH/src/github.com/getcarina/carina
, runmake
and verify that libcarina is restored the right vendored commit hash and everything still works.
Here's how to release a beta build:
-
Checkout the release branch:
git checkout release/v2.0.0
-
Create a tag for the beta release:
git tag v2.0.0-beta.8 -a -m ""
-
Push the tag:
git push --follow-tags
-
Watch the Travis CI build, and wait for a successful deploy.
-
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