Commit graph

275 commits

Author SHA1 Message Date
Mahmood Ali 916c6bdda4 Use golang to 1.12.10
To get fix for https://github.com/golang/go/issues/34540 .
2019-09-26 10:46:07 -04:00
Mahmood Ali 6920b4389e vagrant: install chrome in dev only 2019-09-06 16:11:16 -04:00
Mahmood Ali 0412de0947 vagrant: Install dev tools in dev script only 2019-09-06 14:55:16 -04:00
Tim Gross 6e987f8455 add CNI plugins to Vagrant install 2019-09-05 14:20:17 -04:00
Danielle Lancashire bc198d9328
chore: Remove unused travis scripts 2019-08-30 13:51:05 +02:00
Tim Gross 2df7bac630 ci: require Consul 1.6.0 2019-08-29 14:15:56 -04:00
Tim Gross aa12b87ac2 dev: bump vagrant consul version to match CI 2019-08-29 14:15:56 -04:00
Mahmood Ali 3791a70aa9
Merge pull request #5676 from hashicorp/f-b-upgrade-ugorji-dep-20190508
Update ugorji/go to latest
2019-08-23 18:29:49 -04:00
Mahmood Ali 6430fb5444 use golang 1.12 2019-08-23 09:44:40 -04:00
Michael Schurter 85aaba14ed ci: require Consul 1.6.0-rc1 2019-08-20 13:23:23 -07:00
Michael Lange 539b1693c0 Moved the ui screenshots script from /website/scripts to /scripts
Having a node package in the website dir is incompatible with the way
middleman watches the filesystem.
2019-06-19 17:18:44 -07:00
Mahmood Ali 6aaec8b861 Update golang to 1.11.11
It's the latest 1.11 point release as of now
2019-06-13 09:49:21 -04:00
Mahmood Ali 6f2bcb8775 scripts: use /dev/null when verifying s3 2019-06-11 13:30:54 -04:00
Mahmood Ali b7320b91d7 Pin node version to v10.15.3 2019-05-22 14:23:50 -04:00
Mahmood Ali f71c618d63 use Node 10 for releases 2019-05-22 13:40:25 -04:00
Mahmood Ali cf1f3625b4 Update ugorji/go to latest
Our testing so far indicates that ugorji/go/codec maintains backward
compatiblity with the version we are using now, for purposes of Nomad
serialization.

Using latest ugorji/go allows us to get back to using upstream library,
get get the optimizations benefits in RPC paths (including code
generation optimizations).

ugorji/go introduced two significant changes:
* time binary format in debb8e2d2e.  Setting `h.BasicHandle.TimeNotBuiltin = true` restores old behavior
* ugorji/go started honoring `json` tag as well:

v1.1.4 is the latest but has a bug in handling RawString that's fixed in
d09a80c1e0
.
2019-05-09 19:35:58 -04:00
Mahmood Ali 914d219455 use ugorji/go/codec version that's in vendor.json 2019-05-01 12:47:14 -04:00
Mahmood Ali c80de35bbe Update release/dist script with preflight
Add a preflight check to ensure that AWS credentials is configured
before creating tag.
2019-04-28 16:31:07 -04:00
Michael Lange 21647f9c3b Upgrade Yarn 2019-04-10 14:55:29 -07:00
Michael Lange 1816f02dd6 Upgrade to Node 10, latest LTS 2019-04-10 14:54:38 -07:00
Mahmood Ali 4d1a117fc2 scripts: better prerelease extractor 2019-04-08 21:42:10 -04:00
Mahmood Ali d09815a42e release: only install deps when installing
Now `prerelease` no longer requires linters
2019-03-21 15:02:09 -04:00
Mahmood Ali e80eaf752c allow configurable release target in mac 2019-03-21 14:46:35 -04:00
Mahmood Ali d4ed7aecbf
Merge pull request #5435 from hashicorp/release-scripts-20190318
Scripts for automating binary building
2019-03-20 07:26:10 -04:00
Mahmood Ali 4a9f29c1a6 release: Upgrade to use 1.11.6 golang on macOS
To correspond to the Linux scripts in 855761a5dff9b447152e8ea75a410aafa46e66dc
2019-03-19 21:18:44 -04:00
Mahmood Ali 7f911555b5 Add some release script comments 2019-03-19 21:18:27 -04:00
Michael Schurter 849865caff vagrant: upgrade to Go 1.11.6 2019-03-18 13:38:00 -07:00
Mahmood Ali 88288a1819 accept macos host as a env-var with a default 2019-03-18 15:05:32 -04:00
Mahmood Ali 77cd7f8e13 use bash set long form 2019-03-18 14:34:09 -04:00
Mahmood Ali 1bc81dc6e3 ensure node is present in PATH 2019-03-18 14:31:31 -04:00
Mahmood Ali 49f807f72c handle when no files are generated 2019-03-18 08:29:25 -04:00
Mahmood Ali 4db32eb084 initial attempt at building mac 2019-03-18 08:29:25 -04:00
Mahmood Ali 67bb6c839c remove chown 2019-03-18 08:29:22 -04:00
Mahmood Ali 67b6758bed Add a Docker release scripts
Also tease out some dev and docker bits from Vagrant scripts to ease
sharing with Docker script
2019-03-17 10:37:36 -04:00
Robert James Hernandez 754f11d799 Fix freebsd vagrant priv config for vim-tiny 2019-03-13 19:21:59 -07:00
Michael Schurter 798a25f9c5
Merge pull request #5270 from hashicorp/f-install-protoc-gen-go
install specific version of protoc-gen-go
2019-01-30 10:05:46 -08:00
Michael Schurter 17a8c6639c Install versioned release of codecgen
Gets us one step closer to a reproducible build. Also removes the unused
vendored version.
2019-01-30 08:00:17 -08:00
Michael Schurter f6d760298b fix perms in protoc installer 2019-01-30 07:57:57 -08:00
Michael Schurter 32fd800583 install specific version of protoc-gen-go 2019-01-30 07:57:40 -08:00
Mahmood Ali 6fb80e5cc2 ci: ignore background ping errors
We attempt to kill background ping process twice, and sometimes the
second kill fails, e.g.
https://travis-ci.org/hashicorp/nomad/jobs/486050357, let's not fail the job.
2019-01-29 21:21:32 -05:00
Mahmood Ali 32aa667592
dev: use golang 1.11.5
Use latest Golang point release at this time for development.
2019-01-28 15:05:47 -05:00
Mahmood Ali d696143da7 ci: run checkscripts
`travis.sh` contained some bash-ism despite it being invoked with `sh`.
2019-01-23 10:54:52 -05:00
Mahmood Ali 62a7f951c0 remove lxc references 2019-01-08 09:28:20 -05:00
Mahmood Ali c999400208 dev: upgrade go to 1.11.3 2018-12-14 09:42:23 -05:00
Mahmood Ali 76bc2a3fd0 ci: install lxc-templates explicitly
LXC package on Ubuntu 16.04 doesn't depend on lxc-template, but we
require it in our tests.
2018-12-11 15:49:11 -05:00
Mahmood Ali 683a74d153 Ignore apt-get update failures in CI
We run with ~120 apt sources, and apt-get update fails if any of them is
down.

True errors would be raised again at install phase as true dependencies
fetch would fail.
;
2018-11-13 10:21:40 -05:00
Chris Baker bd55ff8f30 renamed vagrant script to accurately reflect non-privileged requirement 2018-10-05 10:07:05 -04:00
Chris Baker 014184749f vagrant: updated go_version to 1.11 in vagrant-linux go provisioning script 2018-10-04 19:06:35 -04:00
Alex Dadgar 7f5c37de75 Remove old protoc installer 2018-08-01 13:51:45 -07:00
Alex Dadgar 95ccfd6ae1 Add protoc to project 2018-08-01 13:50:08 -07:00
Chelsea Holland Komlo ccf60ac6c8 update to latest protoc version 2018-08-01 10:52:50 -04:00
Chelsea Holland Komlo 1ba5b8170d correct operating system 2018-07-31 15:44:02 -04:00
Chelsea Holland Komlo 24400bca8c bootstrap vagrant development environment with protoc 2018-07-31 15:26:57 -04:00
Michael Lange a17b07b48b
Merge pull request #4410 from hashicorp/b-ui-update-vagrant
UI: update vagrant
2018-06-13 15:49:40 -07:00
Michael Lange b0553b8585 Add chrome to the ui vagrant machine
It's used for running acceptance tests
2018-06-12 17:44:53 -07:00
Alex Dadgar 4408f334eb Vagrant 2018-06-12 09:40:10 -07:00
Alex Dadgar d776e8a55d bump travis version 2018-06-12 09:39:31 -07:00
Michael Lange b4d2921783 Update nvm, node, and yarn in vagrant 2018-06-11 16:22:52 -07:00
Chelsea Holland Komlo e70aa124b4 upgrade nomad to 1.10.2 2018-05-21 17:24:51 -04:00
Alex Dadgar 315564ae94 Bump versions 2018-04-13 16:16:16 -07:00
Michael Schurter 45b4d5c81d Bump Go to 1.10 in Vagrantfile 2018-03-16 16:17:16 -07:00
Michael Schurter 101e85f078
Merge pull request #3819 from schmichael/qemu-graceful-shutdown-alpine
Test QEMU graceful shutdown
2018-02-12 12:32:14 -08:00
Wim 6e5bdaafa8 Add IPv6 support to travis docker 2018-02-01 23:21:28 +01:00
Michael Schurter 0ac43a7622 Skip QEMU graceful shutdown test except on Travis
Hopefully we can reuse the SkipSlow helper elsewhere.
2018-01-31 15:47:26 -08:00
Michael Schurter 831c6b4e24 Update Consul/rkt/Vault in Vagrant
Needed to update Vault for #3334
2018-01-09 15:57:42 -08:00
Preetha 1712b03705
Merge branch 'master' into 0.8 2018-01-03 16:06:38 -06:00
Michael Lange 7a7c8204a7 Lock down nodejs version
The new Travis Trusty image uses node 8 (latest LTS) as the default.
Node 8 is incompatible with some modules used for the UI.
2017-12-15 10:50:06 -08:00
Preetha Appan 309cd31d57
Merge branch 'master' into 0.8 2017-12-12 15:49:47 -06:00
Michael Schurter 85590a67c1 chown $GOPATH for vagrant user 2017-12-11 17:06:07 -08:00
Preetha Appan d8ecdd2bf9
Makes tests on travis not run in verbose mode. 2017-12-06 13:30:31 -06:00
Alex Dadgar ec5e23065c bump go 2017-11-14 15:06:41 -08:00
Alex Dadgar f83b34ae93 Run linters 2017-11-02 16:37:46 -07:00
Alex Dadgar 5f76b4b4b2 show env 2017-11-02 16:24:15 -07:00
Alex Dadgar b335661363 seperate linting from testing 2017-10-24 10:52:26 -07:00
Alex Dadgar 17928aaf51 bump vault and install on darwin 2017-10-21 17:23:42 -07:00
Alex Dadgar c41c0ea6e8 Only check scripts on linux and don't double lint 2017-10-19 16:49:58 -07:00
Alex Dadgar b0989f87ac install to local bin 2017-10-19 16:49:58 -07:00
Alex Dadgar 2dbeced72f Rm upgrading go 2017-10-19 16:49:58 -07:00
Alex Dadgar 8c67d4d753 split privilidged calls to two scripts 2017-10-19 16:49:58 -07:00
Alex Dadgar 892a970ea3 travis 2017-10-19 16:49:58 -07:00
Michael Schurter d214242556 Bump Consul to 1.0.0 in vagrant/travis 2017-10-16 14:10:39 -07:00
Lasse Dalegaard 3a6d065c8e Add rkt default network to Travis
The current Travis setup scripts copy in rkt, but do not set up a
default container network.

Here we copy the container network setup over from the vagrant setup
scripts.
2017-09-26 22:20:01 +02:00
Lasse Dalegaard 3d25fd3b00 Bump minimum rkt version to 1.27.0.
The changes introduces in #3256 require at least rkt 1.27.0 because of
a bug in the JSON output of `rkt status` in previous versions.

Here we upgrade all references to rkt's minimum version, and also make
travis and vagrant use this version when running tests.

Finally we add a CHANGELOG notice.
2017-09-26 19:15:43 +02:00
Michael Schurter a3a0102780 Fix shellcheck's complaints about find loop 2017-09-19 17:41:20 -05:00
Alex Dadgar caa75460fa
Release v0.7.0-beta1 2017-09-19 12:56:28 -05:00
Alex Dadgar e5ec915ac3 sync 2017-09-19 10:08:23 -05:00
Michael Schurter 566f2ee061 Fix permissions of $GOPATH in Vagrantfile
Technically just the true->false is needed. The `chown -R` was a first
attempt that didn't fix the bug, but it's a nice simplification.
2017-09-11 22:38:10 -07:00
James Nugent 12d41dbfe0 build: Lint shell scripts, and make all shell scripts lint cleanly 2017-09-08 19:50:39 -05:00
James Nugent 72028fd5b3 build: Install Go in Vagrant from official release 2017-09-08 19:46:07 -05:00
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