terraform/vendor/github.com/arukasio/cli/BUILDING.md

62 lines
2.3 KiB
Markdown

# Building Arukas CLI
This document contains details about the process for building binaries for Arukas CLI
## QuickBuild
**Please note: Replaced by your arukas token and aruaks api secret is
`YOUR_API_TOKEN` and `YOUR_API_SECRET`**
* Clone the repo: `git clone https://github.com/arukasio/cli.git`
* CLI Build: `docker build -t arukasio/arukas:patch .`
* Test execute the CLI: `docker run --rm -e ARUKAS_JSON_API_TOKEN="YOUR_API_TOKEN"
-e ARUKAS_JSON_API_SECRET="YOUR_API_SECRET" arukasio/arukas:patch`
### Godep
You can use the `godep` in order to install the external package that depends.
It will install the package versions specified in `Godeps/Godeps.json` to your `$GOPATH`
```
go get -u github.com/tools/godep
godep restore
```
## Cross Compilation and Building for Distribution
If you wish to cross-compile arukas-cli for another architecture, you can set the `XC_OS` and `XC_ARCH` environment variables to values representing the target operating system and architecture before calling `make`. The output is placed in the `pkg` subdirectory tree both expanded in a directory representing the OS/architecture combination and as a ZIP archive.
For example, to compile 64-bit Linux binaries on Mac OS X Linux, you can run:
```sh
$ XC_OS=linux XC_ARCH=amd64 make bin
...
$ file pkg/linux_amd64/arukas
arukas: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
```
`XC_OS` and `XC_ARCH` can be space separated lists representing different combinations of operating system and architecture. For example, to compile for both Linux and Mac OS X, targeting both 32- and 64-bit architectures, you can run:
```sh
$ XC_OS="linux darwin" XC_ARCH="386 amd64" make bin
...
$ tree ./pkg/ -P "arukas|*.zip"
./pkg/
├── darwin_386
│ └── arukas
├── darwin_386.zip
├── darwin_amd64
│ └── arukas
├── darwin_amd64.zip
├── linux_386
│ └── arukas
├── linux_386.zip
├── linux_amd64
│ └── arukas
└── linux_amd64.zip
4 directories, 8 files
```
_Note: Cross-compilation uses [gox](https://github.com/mitchellh/gox), which requires toolchains to be built with versions of Go prior to 1.5. In order to successfully cross-compile with older versions of Go, you will need to run `gox -build-toolchain` before running the commands detailed above._