Commit Graph
38 Commits
Author SHA1 Message Date
Bassam Tabbara e5d895a0a1 build: speedup calls to dep ensure
dep ensure blindly updates the whole vendor tree causing everything to be rebuilt. This workaround will only call dep ensure if the .lock file changes or if the vendor dir is non-existent.
2017-11-10 08:47:22 -08:00
Bassam Tabbara f123a46dee move to dep 2017-10-27 16:04:03 -07:00
Bassam Tabbara 1654ebe9eb build: upgrade glide to v0.13.0 2017-10-27 11:57:29 -07:00
Bassam Tabbara 9d5a7e945c build: ensure build concurrency only across platforms
this commit will ensure that any concurrency during the go build only happens across platforms, and no concurrent calls to go build or go install happen for a given platform.

the goal here is to reduce races between concurrent invocations of go build where package files are removed form the file system leading to "can't find import" errors.
2017-10-24 12:44:18 -07:00
Divesh Angula 21228d4d4b CI updates
- Add support for running individual test in a tests suite
 - building integration and longhaul test binaries
 - Addiing support for skipping CI or running just smoke test on a PR.
2017-09-21 15:52:12 -07:00
Bassam Tabbara e868693cb1 build: upgrade to golang 1.9 2017-08-24 22:16:09 -07:00
Bassam Tabbara 5732003ec6 build: explicitly build the test packages 2017-07-21 19:25:12 -07:00
Bassam Tabbara 0a9077b0da build: fix building of integration tests 2017-07-21 19:25:11 -07:00
Bassam Tabbara e252c9383b build: move binaries to _output/bin 2017-07-21 19:25:11 -07:00
Bassam Tabbara a8379cf251 build: disable glide up on build 2017-07-21 17:08:40 -07:00
Bassam Tabbara 2cdfdab3db build: optionally build integration tests binary 2017-07-17 17:35:25 -07:00
Bassam Tabbara cdc26ef162 enable 'gofmt -s' and fix issues 2017-07-16 21:24:13 -07:00
Bassam Tabbara bd8d7ca71b build: fix make vendor 2017-07-12 17:28:34 -07:00
Bassam Tabbara a5959bbf8a build: run glide update when glide.yaml changes
this will ensure that we do not have broken dependencies.
2017-07-07 12:45:07 -07:00
Bassam Tabbara e4b1db9bc9 tests: refactor integration tests
refactor integration tests splitting out the kubernetes
cluster setup to just be in a script and making it the reponsibility
of the host/user/jenkins.

integration tests now run just like unit tests using "go test".
2017-06-29 15:20:28 -07:00
Bassam Tabbara e55fd55e7d build: rework release scripts and jenkinsfile
inital commit to convert release scripts to makefiles for improved maintenance.

now publishing to docker hub including manifest list support.

initial attempt at reworking the jenkinsfile to pipeline syntax.
2017-06-29 15:20:27 -07:00
Bassam Tabbara ab59789334 build: fix make release on mac 2017-06-20 20:57:46 -07:00
Bassam Tabbara 96252b9ef3 build: switch rook and rookd to static
removed PIE and simplified the cross build containers as a result.
2017-06-20 20:57:46 -07:00
Bassam Tabbara f3ae0a2fa8 build: support for building on mac 2017-06-20 20:57:46 -07:00
Bassam Tabbara 1299df7ec7 build: remove externals and update makefiles
remove externals subdir from the codebase and switch to using
the new build containers. also all submodules are now gone.
2017-06-20 20:57:46 -07:00
Jared Watts d05d074bb9 Fix gofmt issue and update makefile to print and fail upon gofmt errors instead of updating the files inline. 2017-06-13 22:08:04 -07:00
Steve Leon 236468119e Added volume provisioner to Rook
- The provisioner is a Kubernetes external volume provisioner
- It calls the Rook API to create and delete volumes on behalf
  of Kubernetes
- It automatically discover Ceph monitor endpoints
- It locates RBD ceph user keys based on the Rook cluster location
- It uses the in-tree RBD volume plugin to do the map/unmap
- Also modify the documentation to reflect the changes on the
  storageclass
2017-04-17 15:20:44 -07:00
Bassam Tabbara 42629f406f build: use a versioned glide binary 2017-04-04 17:02:25 -07:00
Bassam Tabbara cbacbe957d build: cleanup working directories and mac build
centralized all working directories at .work in the root of the tree.  also centralize all download directories to .download at the root of the tree.

cleaned up the rsync behavior between host and docker cross build when running on non-linux host.
2017-04-04 17:02:25 -07:00
Bassam Tabbara eeb2656b1f build: fix vendor handling
we now ensure that glide failures stop the build
2017-04-04 17:01:39 -07:00
Bassam Tabbara 192926c96b build: improve golint and glide tool installation 2017-04-04 17:01:39 -07:00
Steve Leon 2f0045db2e Adding lint check for syntax and style. 2017-03-16 09:47:49 -07:00
Bassam Tabbara cc6f40649a build: run go builds in parallel 2017-03-06 14:51:32 -08:00
Bassam Tabbara 6e84b161fa build: separate externals into their own project
Move external packages including ceph into a separate project under
the externals subdir.
2017-03-06 14:51:32 -08:00
Bassam Tabbara 75523ccb17 build: add support debug builds and backtraces
we now build with debug information on linux even for release builds. Debug
information is save in a separate .debug file that can be loaded by gdb.

switched to using the golangs's facilities for cgo backtraces. had to add
C++ demangling to it but its now on par with the default backtrace facility
that ceph had. This approach works with static builds and relies on the
symbol table alone -- no need for rdynamic or DWARF sections in the binary.

Update the build container so that all packages now build with debug, also
fixed zlib package which had a broken link.

Fixes #135
2017-02-09 19:52:27 -08:00
Bassam Tabbara 0216acaa84 build: fix static builds
restructure the build tags and installsuffix usage for golang
to build our projects correctly for static and dynamic builds.
2016-11-16 14:11:29 -08:00
Bassam Tabbara 0aac00ff79 build: use netgo build tag for static builds
pass netgo build tag just for static builds. this required a refactoring of build flags to avoid passing netgo to non-static packages.

Fixes #80
2016-11-14 12:54:02 -08:00
Bassam Tabbara b3c4f18c89 initial docs and licensing 2016-11-07 17:13:39 -08:00
Bassam Tabbara d7c9d41f04 use rsync to speedup build on macOS
we know use rsync to sync sources to the build container
and avoid osxfs which is painfully slow. the macOS/docker
build now is on par with linux builds
2016-10-18 17:55:36 -07:00
Travis Nielsen 3c9b4e52df print code coverage with tests 2016-10-18 09:01:42 -07:00
Bassam Tabbara f9ace65a79 make castle go gettable
changed the cmd/castlectl pacakge to not have a main function and
added main.go at the root of the tree. this makes the whole
project go gettable.

also fixed a number of makefile issues to deal with go files in the
root of the tree.
2016-10-17 17:07:27 -07:00
Bassam Tabbara c7c64f83a5 improve support for building on the macOS
numerous path fixes in makefiles.

now using a cross-build volume for docker to avoid running heavy I/O paths on docker's osxfs which is super slow.
2016-10-17 10:43:23 -07:00
Bassam Tabbara 0c30d20386 Simplify Makefile to support cross compiling
Makefile has been simplified to take advantage of incremental
build support in golang, and to setup for cross compiling.
2016-10-10 15:35:38 -07:00