Commit Graph

236 Commits

Author SHA1 Message Date
James Nugent dc40420b51 build: Fix Travis following Vagrant changes 2017-09-08 19:45:41 -05:00
James Nugent 094fa23df6 build: Rework Vagrant to support multiple OS boxes
This commit reworks the Vagrantfile for Nomad in order to support
straightforward testing on more than one operating system, whilst
retaining the ability to stand up a test cluster running Ubuntu.

The following changes are made:

- Scripts have been extracted from the Vagrantfile into their own shell
  script files, in order that editors lint them.

- All scripts have been edited to lint with no warnings or errors for
  their respective shells.

- Scripts are named according to the operating system and privilege
  level which they run. We prefer to run a whole shell script as root
  versus prefixing (essentially) every command with `sudo` or an
  equivalent.

- The Linux development box has been separated from the test cluster,
  removing some of the more gnarly (and less portable) logic. The Linux
  development box is still primary and autostarts.

- A FreeBSD target has been added. The base box works for both
  Virtualbox and VMWare Fusion.

- A target is added to the GNUmakefile to stand up a test cluster, using
  the default provider, or overriding the provider by setting the PROVIDER
  variable in make:
	- `make testcluster`
	- `make testcluster PROVIDER=vmware_fusion`

- Machines in the test cluster have Avahi configured for zeroconf
  discovery. Each machine can ping each other machine at `hostname.local`
  - for example `nomad-server02.local`, `nomad-client03.local`.
2017-09-08 19:45:38 -05:00
Alex Dadgar 139ec4916c bump consul version 2017-08-23 10:45:54 -07:00
James Nugent 196cdf4e64 build: Replace shell scripts with GNUmakefile
This commit replaces the shell script-driven build process for Nomad
with one based around GNU Make (note we _do_ use GNU-specific
constructs), requiring no additional scripts for common cases of
development. The following targets are implemented:

Per-OS/arch combinations:

    Binaries (Host - Mac OS X):
	pkg/darwin_amd64/nomad

    Binaries (Host - Linux):
	pkg/linux_386/nomad
	pkg/linux_amd64/nomad
	pkg/linux_amd64-lxc/nomad
	pkg/linux_arm/nomad
	pkg/linux_arm64/nomad
	pkg/windows_386/nomad
	pkg/windows_amd64/nomad

    Packages (Host - Mac OS X):
	pkg/darwin_amd64.zip

    Packages (Host - Linux):
	pkg/linux_386.zip
	pkg/linux_amd64.zip
	pkg/linux_amd64-lxc.zip
	pkg/linux_arm.zip
	pkg/linux_arm64.zip
	pkg/windows_386.zip
	pkg/windows_amd64.zip

Phony targets:

	dev - Builds for the current host GOOS/GOARCH (unless overriden
	      in the environment)

	release - Builds all appropriate release packages for the
	          current host GOOS/GOARCH (i.e. Windows and Linux
		  packages on a Linux host, Darwin packages on an OSX
		  host)

	generate - Generate code for the current host architecture using
	           `go generate`.

	test - Runs the Nomad test suite

	clean - Removes build artifacts

	travis - Runs `make test` with the wrapper script to prevent
	         Travis CI from timing out.

	help - Displays usage information about commonly used targets.

Note that there are some semantic differences from the previous version.

1. `generate` is no longer a dependency of `dev` builds. This is because
   it causes a rebuild every time, even when no code has changed, since
   `go generate` does not appear to leave file timestamps alone.
   Regardless, it is insufficient to generate on one host OS - it needs
   to be run on each target to ensure everything is generated correctly.

2. `gofmt` is no longer checked. This should be enabled as a linter once
   the `gofmt -s` refactoring will pass on the whole code base, in order
   to avoid special cased checks versus using go-metalinter.

Example Usages:

Make a development build for the current GOOS/GOARCH:

	make dev

Make release build packages appropriate for the host OS:

	make release

Update generated code for the host OS:

	make generate

Run linting checks:

	make check

Build a specific alternative GOOS/GOARCH/tags combination:

	make pkg/linux_amd64-pkg/nomad
	make pkg/linux_amd64-pkg.zip
2017-08-18 06:29:26 +01:00
Alex Dadgar 1a86aecf55 Add version package
This PR adds a version package and consolidates version strings into a
Version struct.
2017-08-16 15:44:21 -07:00
Alex Dadgar 27ec9b1428 reset travis script 2017-07-22 22:25:20 -07:00
Alex Dadgar b1b61b892a whats going on 2017-07-22 21:44:53 -07:00
Alex Dadgar 553bc91725 Parallel client tests (#2890)
* alloc_runner

* Random tests

* parallel task_runner and no exec compatible check

* Parallel client

* Fail fast and use random ports

* Fix docker port mapping

* Make concurrent pull less timing dependant

* up parallel

* Fixes

* don't build chroots in parallel on travis

* Reduce parallelism on travis with lxc/rkt

* make java test app not run forever

* drop parallelism a little

* use docker ports that are out of the os's ephemeral port range

* Limit even more on travis

* rkt deadline
2017-07-22 19:04:36 -07:00
Alex Dadgar 9e9c20ca77 small fixes 2017-07-22 12:25:02 -07:00
Alex Dadgar c355250fca Force parallelism on travis 2017-07-20 22:47:10 -07:00
Alex Dadgar c8ad00aff6 Undo verbose and parallel on tests 2017-07-20 20:28:31 -07:00
Alex Dadgar 7e9d1ede6e verbose and parallel 2017-07-20 09:57:39 -07:00
Michael Schurter a296a24215 Start consul in getting started vagrant
Sneak a version bump to consul in as well
2017-07-03 16:45:13 -07:00
Michael Schurter 8b93ec023c Fixup example 2017-06-21 17:19:08 -07:00
Michael Schurter 7fd41b778d Add script to demo weave in vagrant 2017-06-21 17:19:08 -07:00
Michael Schurter 8d677bc6b9 Fix lxc tests 2017-06-21 17:19:08 -07:00
Michael Schurter 21dff59304 Update go-winio to remove cgo on Windows
Thanks to Microsoft/go-winio#51
2017-05-08 15:43:48 -07:00
Michael Schurter a2a8af471a go-winio now requires cgo which requires mingw 2017-05-03 17:09:12 -07:00
Alex Dadgar a4ef87c6e5 bump vault 2017-03-27 10:10:42 -07:00
Lev Walkin 4bb5b74489 ensuring bin directory exists before copying 2017-03-17 17:23:15 -07:00
Michael Schurter 06a4d3c6cd Fix overriding build targets 2017-03-14 10:47:29 -07:00
Michael Schurter 1f6090371b make bin creates a release binary for the host arch
make dev properly copies the binary into bin/ again.

make release still creates binaries for as many archs as possible.

Fixes #2407
2017-03-08 17:42:28 -08:00
Michael Schurter 518e4f75a6 Replace "-" in env var keys with "_"
Fixes #2405
2017-03-06 19:57:44 -08:00
Alex Dadgar 9f65ca42cc auto release 2017-03-03 16:06:31 -08:00
Alex Dadgar 0124ba1406 Fix docs and script 2017-03-03 16:00:39 -08:00
Jonathan Wright 87b84c71a6 Fix spelling error for CGO_ENABLED variable in build script 2017-03-01 19:21:46 +00:00
Michael Schurter 2f0a5e355e Oops! Don't try to build darwin on Linux.
Someday maybe
2017-02-23 16:58:21 -08:00
Michael Schurter 885f4ae9f9 Allow building specific targets 2017-02-23 13:27:28 -08:00
Michael Schurter f2cf2b1df1 Fix 32bit arm build
Had to use the hack from https://github.com/golang/go/issues/12443
2017-02-09 11:22:17 -08:00
Alex Dadgar d318e5bc38 Add windows exe extension 2017-02-05 13:17:13 -08:00
Diptanu Choudhury b6c629a6b9 fixed conflicts 2017-01-31 13:20:58 -08:00
Michael Schurter 13e3ce5c71 Fix some bash; uuuuuuuuuugh 2017-01-27 16:08:21 -08:00
Michael Schurter 0059bca6b3 Prettify output 2017-01-27 16:08:21 -08:00
Michael Schurter a0d792ea77 Fix `vagrant provision` with a bunch of guards 2017-01-27 16:08:21 -08:00
Michael Schurter d2bc719a26 Bump rkt version; simplify script 2017-01-27 16:08:21 -08:00
Michael Schurter 5cd710bd8e Upgrade vagrant/release to Ubuntu 16.04 / Go 1.7.5
Switch back to soft-float arm32 as armhf chips are backward compatible.
2017-01-27 16:08:21 -08:00
Michael Schurter 6a085080bc Split out massive list of cross compile deps+cmds 2017-01-27 16:08:21 -08:00
Michael Schurter e620336a0c Install crosscompile dep to build arm in Vagrant 2017-01-27 16:08:21 -08:00
Michael Schurter 2a383b8de8 Cache build deps prior to running tests 2017-01-27 16:08:21 -08:00
Michael Schurter 6a5fa593fa Split dev build into its own script
The dev build is far simpler than the release build, so move it to its
own shell script. This simplifies the release build script slightly as
well at the cost of duplicating the version/tag logic.

Also don't even try to check for LXC if not running on Linux. I don't
think we want to try to support cross-compiling LXC from non-Linux
hosts.
2017-01-27 16:08:21 -08:00
root c3869ffd73
Release v0.5.3-rc1 2017-01-24 18:30:10 +00:00
Alex Dadgar d051065229 Actually randomize the splay 2017-01-22 13:50:33 -08:00
Michael Schurter 81a709e6d4 Use - not _ for lxc enabled build 2016-12-15 11:06:03 -08:00
Alex Dadgar 0609f48bd3 update hc-releases 2016-12-12 13:48:08 -08:00
root 8c1bdc0342
Release v0.5.0-rc2 2016-11-10 19:08:15 +00:00
Seth Vargo de0c9d3911
Simplify xc script
This is the same set of builds that we currently publish, but it groups
them into less magic.
2016-10-27 22:08:58 -04:00
Michael Schurter 7899fb1f63 Move tags into variable
Bash quoting is hard
2016-10-26 15:53:38 -07:00
Michael Schurter f430203505 Put lxc support behind a flag
Since lxc support requires linking to a C lib at compile and runtime
I'm putting it behind a build flag to avoid forcing all nomad users to
install liblxc (lxc-dev for development).
2016-10-26 14:55:54 -07:00
Michael Schurter 0cd3763a10 Update rkt script and test rkt in travis 2016-10-25 09:46:49 -07:00
Alex Dadgar 7e466ee9d2 Bump Vault/Consul version 2016-10-06 14:09:39 -07:00
Alex Dadgar 15e6c724ae no -v 2016-09-21 14:21:37 -07:00
Alex Dadgar d690d0afdc bump vault version 2016-08-25 13:13:20 -07:00
Alex Dadgar db2806a9c1 Merge pull request #1629 from hashicorp/f-derive-token
Server Deriving Tokens on behalf of Clients
2016-08-23 13:58:47 -07:00
Diptanu Choudhury 1e1eef56a1 Putting the mock driver behind a build flag 2016-08-22 15:02:28 -05:00
Alex Dadgar 01cc43d452 Add set -e 2016-08-19 16:40:37 -07:00
Alex Dadgar 2f6f840453 install scripts 2016-08-17 16:25:38 -07:00
Diptanu Choudhury e1ccf5aedd Changed build script 2016-08-17 15:18:37 -07:00
Alex Dadgar 0f6e71a3d8 More advance travis timeout circumvention 2016-08-16 21:46:53 -07:00
Alex Dadgar 2b2bb37a07 change test script 2016-08-16 12:32:29 -07:00
vagrant dbbb20dd99
Release v0.4.1-rc1 2016-08-13 01:02:08 +00:00
Diptanu Choudhury 7fbb661756 Enabled cgo 2016-08-12 17:34:54 -07:00
Diptanu Choudhury d1a4acb300 Updated the build script 2016-08-12 15:55:39 -07:00
Diptanu Choudhury 10a5c06a5a Running the tests in verbose mode 2016-07-26 14:02:47 -07:00
Sean Chittenden 8172f1c9ed
Use anchored regexp for filtering vendored tests 2016-07-12 02:15:42 -04:00
Sean Chittenden fd1986496e
... oh wow. This is an "improvement." 2016-07-11 13:06:00 -07:00
Sean Chittenden 8e9e344ddf
When sudo(1)'ing to run the tests, use the abspath of the current user's
go(1) instead of whatever is in root's PATH.
2016-07-11 12:49:26 -07:00
Sean Chittenden e1b4c465f2
Add debugging to figure out why Travis can't find `go(1)` when sudo'ing
but xargs(1) could.
2016-07-11 12:41:14 -07:00
Sean Chittenden 74aacd799a
Remove xargs(1) from testing and rely on `go test -v`.
Tests are approaching 30min largely due to recompiling every package.
Out of a ~30min build, only ~5min are actually spent running the tests,
the remaining time is spent recompiling.
2016-07-11 12:31:21 -07:00
Alex Dadgar 5a09c44517 Add OSs back to build script 2016-06-28 14:30:02 -07:00
Alex Dadgar e207339e80
Release v0.4.0 2016-06-28 14:26:34 -07:00
Diptanu Choudhury ac724e2800 Revert changes to build script 2016-06-22 17:01:53 -07:00
vagrant 0a6e2a245c
Release v0.4.0-rc2 2016-06-22 23:50:29 +00:00
Sean Chittenden faea8921d6
Remove the FreeBSD exclusion rule.
Other *NIX systems may be eligible for being removed from this list
but I am not in a position to support or test them at present.
2016-06-16 23:07:13 -07:00
Sean Chittenden 8f01a2e638
Allow test flags to be overridden from the environment. 2016-06-16 18:26:31 -07:00
Alex Dadgar a4826e7471 increase timeout 2016-06-15 15:42:44 -07:00
Alex Dadgar 5917af7da2 up test timeout 2016-06-13 23:08:24 -07:00
Alex Dadgar 2f7e1fa569 guide 2016-06-13 22:41:51 -07:00
Ivo Verberk 7279911df3 Revert "Scope the test"
This reverts commit 7d018ef1befa1fe9477e6b653a510494e8de5913.
2016-06-05 13:34:24 +02:00
Ivo Verberk c5b3c112b9 Revert "Add verbosity flag"
This reverts commit 9089105e16cd543d87971ceee5e732e4346b7a70.
2016-06-05 13:34:16 +02:00
Ivo Verberk d5f625c97a Revert "Scope to one test"
This reverts commit 9e812db94eb1bf0e7bb299273b18f12280dd1bae.
2016-06-05 13:34:03 +02:00
Ivo Verberk 5f3fa3bbbd Scope to one test 2016-06-05 13:22:58 +02:00
Ivo Verberk a57683171f Add verbosity flag 2016-06-05 13:17:13 +02:00
Ivo Verberk 6a5e46a152 Scope the test 2016-06-05 12:37:18 +02:00
Sean Chittenden cb9b4eca83 Merge pull request #1156 from hashicorp/f-x-sys-unix
Use x/sys/unix vs syscall package where appropriate
2016-05-09 11:56:00 -07:00
Sean Chittenden 4a507c0ddb Fully enumerate build targets
Exclude broken build targets from gox
2016-05-07 12:12:04 -07:00
Sean Chittenden 83114d2681 SHA512 rkt downloads
Only extract rkt if it hasn't been.  Only Fetch if it's missing.  Verify SHA512 of the tarball before extracting.

Discovered while recreating pathological failure conditions on local vagrant cluster and recreating vagrant clients in a loop over night (read: overnight testing revealed that rkt-1.2.0.tar.gz.723 didn't vary in its contents compared with rkt-1.2.0.tar.gz)
2016-05-07 10:14:36 -07:00
Sean Chittenden 90ef6301c3 Upgrade rkt from 1.2.0 to 1.5.1 2016-05-07 10:06:57 -07:00
Alex Dadgar 2163bb1b6a
Release v0.3.2-rc1 2016-04-14 13:49:20 -07:00
Alex Dadgar f38ed64938 Validate driver config on job register 2016-04-13 15:55:46 -07:00
Abhishek Chanda 5a5ef65bc4 Update rkt and docker 2016-03-18 22:18:59 -07:00
Diptanu Choudhury 02588be335 Merge pull request #933 from hashicorp/b-go-linker-flag
Go's -X linker flag now requires only one argument
2016-03-17 12:33:15 -07:00
Sean Chittenden 7fbc365feb Go's -X linker flag now requires only one argument 2016-03-17 11:57:46 -07:00
Alex Dadgar e6d50f96ef Respond to comments and fix test 2016-03-15 20:21:52 -07:00
Abhishek Chanda 63b3703135 Always use the new package config if there is a conflict 2016-03-03 20:40:34 -08:00
Abhishek Chanda bff2127ecf Test against latest stable docker 2016-03-03 20:40:34 -08:00
Abhishek Chanda a038d60a3b Disable ipmasq in the default ptp network 2016-03-02 14:04:14 -08:00
Abhishek Chanda 3da757addf Print rkt and docker versions after installing 2016-03-02 14:04:14 -08:00
Abhishek Chanda b47724e1e7 Put docker version in the script 2016-03-02 14:04:14 -08:00
Abhishek Chanda 0eac97b712 Add a shebang to docker update script 2016-03-02 14:04:14 -08:00
Abhishek Chanda e1a1b7fc66 Enable running rkt tests in travis
- Introduces a travis target in Makefile to update docker and
  install rkt
2016-03-02 14:04:14 -08:00
Diptanu Choudhury 25fd1194fc Removing support for Go 1.5.3 2016-02-22 00:42:34 -08:00
Diptanu Choudhury efea99001a Fixed the make dev target 2016-02-12 10:36:11 -08:00
Diptanu Choudhury 7875aceca9 Excluding vendor tests 2016-02-12 10:26:19 -08:00
Diptanu Choudhury 9897b600ca Using godeps to build 2016-02-12 10:02:16 -08:00
Jake Champlin f40371963b Allow compilation on BSD
BSD Make uses `$.CURDIR` instead of `$CURDIR`. BSD and GNU share `$PWD`
though, so it works as a drop in replacement.

Also update scripts in `scripts/` to call `/usr/bin/env` in the shebang,
as BSD places `bash` at `/usr/local/bin/bash` instead of `/bin/bash`
2016-01-27 20:37:29 -05:00
Alex Dadgar 1ceb6f012a Fix a bunch of tests
Up timeouts

trusty travis beta

Increase timeouts
2016-01-20 16:03:53 -08:00
Alex Dadgar 8c63515efd Travis uses sudo/docker and run tests as root 2016-01-19 15:44:04 -08:00
Seth Vargo 0f03575030 Remove old scripts 2016-01-13 22:05:56 -05:00
Diptanu Choudhury 0ec181e608 Removed a broken dependency 2015-12-17 13:12:28 -08:00
Diptanu Choudhury f6fb42835e Using cgo dependencies to look up users 2015-12-15 11:12:13 -08:00
Camilo Aguilar 6e5c34e514 Fixes #505
https://github.com/hashicorp/nomad/pull/421 removed the last piece
of CGO dependant code. We we can stop building binaries with CGO
enabled now.
2015-12-04 12:20:34 -05:00
Chris Bednarski e22d7e2a27 Merge pull request #438 from hashicorp/b-makefile
Added some missing dependencies for linux x-compile
2015-11-18 13:46:33 -08:00
Chris Bednarski 4aba55c191 increased test timeout to 80s so docker tests don't timeout and panic 2015-11-18 11:13:03 -08:00
Chris Bednarski 2071ec7067 Added some missing dependencies for linux x-compile 2015-11-17 17:29:27 -08:00
Alex Dadgar 1d15f6eda6 Bind alloc dir and task local dir to docker containers and parse args correctly 2015-10-15 16:40:07 -07:00
Seth Vargo e54cebcc69 Merge pull request #235 from hashicorp/sethvargo/shopt
Add shopt globs to include hidden files
2015-10-10 13:47:25 -04:00
Seth Vargo c52000a033 Add shopt globs to include hidden files 2015-10-08 13:48:17 -04:00
Abhishek Chanda 81f1f6832f Print coverage info while running tests 2015-10-06 19:13:04 -07:00
Alex Dadgar 8572743482 OS dependant build dependencies 2015-10-06 10:51:18 -07:00
Alex Dadgar 4fd50fa04e OS specific build dependencies 2015-10-05 13:36:25 -07:00
Ryan Uber 6254719898 Add release target, package Nomad 2015-09-30 12:54:59 -07:00
Ryan Uber 0dde27e464 Makefile updates 2015-09-30 12:39:05 -07:00
Ryan Uber 9b67f9bbe0 Make fixes for OS-specific deps 2015-09-29 15:42:57 -07:00
lalyos f26d9d0f61 use 'idiomatic' bash 2015-09-29 16:58:09 +02:00
Mitchell Hashimoto 22252974a2 scripts 2015-09-27 23:58:40 -07:00
Mitchell Hashimoto c4fe19764c scripts 2015-09-27 23:45:09 -07:00
Mitchell Hashimoto dc14f9be7e scripts for release 2015-09-27 23:21:00 -07:00
Chris Bednarski 100008e012 Increase test timeout so driver tests are less sensitive slower networks 2015-09-22 13:06:34 -07:00
Seth Vargo cd5dbfb54f Merge pull request #69 from hashicorp/sethvargo/website_stuff
Update website diagrams and remove unused pages
2015-09-20 16:58:26 -04:00
Seth Vargo 03f92e50fa Use = in -X because it's deprecated without 2015-09-20 16:36:30 -04:00
Seth Vargo d1ff35aca5 Do not use prefix splitting to deploy 2015-09-20 13:58:41 -04:00
Armon Dadgar 1a18a57368 Fixing build script 2015-09-18 11:48:04 -07:00
Ryan Uber 76c7584eaf scripts: fix build warning 2015-09-08 11:24:28 -07:00
Armon Dadgar 1fd148d97d nomad: fixing vet errors 2015-08-15 16:10:10 -07:00
Armon Dadgar 408159d40f Adding basic version command 2015-06-01 15:25:51 +02:00
Armon Dadgar 0b91f01cbf Adding initial skeleton 2015-06-01 13:46:21 +02:00