Commit Graph

150 Commits

Author SHA1 Message Date
Kris Hicks c4ae5aab9a
circleci: Allow expanding Makefile in enterpise (#9587)
OSS no longer needs the multi-file config Makefile content, so it was
removed. However, enterprise does benefit from having that around. We
can allow enterprise to expand on OSS' CircleCI Makefile by adding an
include directive in OSS. This will allow the Makefile to be the same on
both OSS and Enterprise, so merge conflicts cannot occur.
2020-12-09 09:53:26 -08:00
Kris Hicks a841e3f7fa
circleci: Remove GO_TAGS from build-binaries job (#9579)
These tags default to the same value in GNUMakefile. This will also help
fix a discrepancy between the build-binaries job in OSS and Ent.
2020-12-09 06:56:56 -08:00
Kris Hicks e97d9d7d00
Remove multi-file CircleCI config (#9571) 2020-12-08 13:18:11 -08:00
Kris Hicks 511c2e9db2
proto: Switch to using buf (#9308)
This replaces all usage of `protoc` with `buf`. See `tools/buf/README.md` for more.
2020-11-17 07:01:48 -08:00
Michael Schurter 65175d15cc build: upgrade from Go 1.15.4 to 1.15.5
Despite being a security release for Go, we do not believe Nomad is
impacted.
2020-11-12 14:19:26 -08:00
Michael Schurter 447ec6389e go: update from 1.15.1 to 1.15.4
1.15.5 is due in a couple days but we may release before then.
2020-11-10 08:35:25 -08:00
Michael Lange 59626344be Use Node v12 for UI development 2020-11-04 09:04:22 -08:00
Russell Rollins 538aa90d92
Use Dockerhub Mirror. (#9220)
Dockerhub is going to rate limit unauthenticated pulls.

Use our HashiCorp internal mirror for builds run through CircleCI.

Co-authored-by: Mahmood Ali <mahmood@hashicorp.com>
2020-11-02 09:28:02 -05:00
Tim Gross 5dd77d1dc8
ci: make split between e2e and integration tests explicit (#9091)
Currently we compile (but don't run) the e2e tests as part of `test-other`,
which is skipped for branches named `e2e-*`. Move this check into the
`test-e2e` job. Split out the vault compatibility integration check as its own
makefile target for clarity.
2020-10-14 14:53:21 -04:00
Tim Gross 7023f59ca3
ci: don't run UI tests for e2e branches (#8956) 2020-09-24 08:59:56 -04:00
Tim Gross e78fc7ff93
ci: reduce merge conflict potential in CircleCI config (#8951)
We currently have two jobs commented out in ENT because we don't have the test
target configured there. So having the filter attached to one of those jobs
means changes to filters always create a merge conflict.
2020-09-23 09:35:23 -04:00
Tim Gross c8ce887fb2
ci: exclude unit test runs from e2e branches (#8909)
Branches for the e2e code base can't have impact on the unit tests, so running
those tests just extends the time it takes to ship e2e updates. This changeset
updates the CircleCI config so that e2e branches run linting, build the
binary, and run the e2e unit tests (currently just vault compatibility).
2020-09-18 09:25:29 -04:00
Mahmood Ali d4f385d6e1
Upgrade to golang 1.15 (#8858)
Upgrade to golang 1.15

Starting with golang 1.5, setting Ctty value result in `Setctty set but Ctty not valid in child` error, as part of https://github.com/golang/go/issues/29458 .
This commit lifts the fix in https://github.com/creack/pty/pull/97 .
2020-09-09 15:59:29 -04:00
Seth Hoenig d6b0f43f3f consul/connect: update consul version used in circleci 2020-08-24 08:21:27 -05:00
Michael Schurter c7c603eda5 build: update from Go 1.14.6 to Go 1.14.7
Go 1.14.7 fixes CVE-2020-16845 which is not believed to impact Nomad.
2020-08-06 11:50:29 -07:00
Mahmood Ali 522560add2 Use golang 1.14.6
Pick up fixes [golang 1.14.6 bug fixes](https://github.com/golang/go/issues?q=milestone%3AGo1.14.6+label%3ACherryPickApproved), specially the one where reflect.DeepEqual returns true even if values don't match, affecting our tests integrity.
2020-07-20 12:04:38 -04:00
Michael Schurter db14a4d19c build: update from Go 1.14.4 to Go 1.14.5
Go 1.14.4 contains two CVEs which are fixed in 1.14.5:

 - [CVE-2020-15586](https://golang.org/issue/34902)
 - [CVE-2020-14039](https://golang.org/issue/39360)

Upon consideration with HashiCorp security these CVEs are considered low
severity for Nomad and no new security fix binary will be released.
2020-07-15 09:49:06 -07:00
Mahmood Ali 2c5d4f86cb use node 12 2020-06-24 21:16:15 -04:00
Mahmood Ali 15b84be0e6 Tweak algolia scripts
Avoid running algolia job in forks or enterprise private repositories
2020-06-24 15:28:57 -04:00
Kevin Pruett eba5ada40b
Update job and config via make 2020-06-23 22:56:29 -04:00
Kevin Pruett 81c6c7d65f
Utilize Next.js env variable conventions 2020-06-23 22:40:37 -04:00
Kevin Pruett 04f2e673ba
Setup Algolia indexing job in CI 2020-06-23 22:40:17 -04:00
Michael Schurter c078155cf0 build: update from Go 1.14.3 to Go 1.14.4 2020-06-16 10:07:05 -07:00
Buck Doyle 1cca7abcab
Add Ember ESLint plugin (#8134)
This is extracted from #8094, where I have run into some snags. Since
these ESLint fixes aren’t actually connected to the Ember 3.16 update
but involve changes to many files, we might as well address them
separately. Where possible I fixed the problems but in cases where
a fix seemed too involved, I added per-line or -file exceptions.
2020-06-09 16:03:28 -05:00
Mahmood Ali 396f776aa5 ci: run static generators as part of CI
These are used by release process, so add them to CI to notice if we
break release scripts.
2020-06-04 18:23:29 -04:00
Seth Hoenig 435c0d9fc8 deps: Switch to Go modules for dependency management
This PR switches the Nomad repository from using govendor to Go modules
for managing dependencies. Aspects of the Nomad workflow remain pretty
much the same. The usual Makefile targets should continue to work as
they always did. The API submodule simply defers to the parent Nomad
version on the repository, keeping the semantics of API versioning that
currently exists.
2020-06-02 14:30:36 -05:00
Michael Schurter ca9907a967 build: update from Go 1.14.1 to Go 1.14.3 2020-05-16 10:41:20 -04:00
Mahmood Ali bbb341ec66 quiet unzip 2020-05-15 13:19:21 -04:00
Mahmood Ali 3441cdf00e Predownload image before tests start 2020-05-15 12:55:53 -04:00
Mahmood Ali a1e0715912 remove unused gotestsum installation script 2020-05-15 12:45:39 -04:00
Mahmood Ali 42c65eb87a colocate test-windows by darwin target
Mostly to ease conflict resolution with Enterprise fork, as Enterprise
CI doesn't support windows.
2020-05-15 12:33:31 -04:00
Mahmood Ali e50fb91557 Few Windows CI changes:
Always install go and vault: the check may accidentally use the CircleCI
pre-installed go version instead of the cached version.

Also, always install from sources without caching.  Go/vault
installation is basically a tarball download.  That's equivalent to
CirleCI caching without the complexity.  These steps don't add much time
either.

Lastly, infer the OS when downloading tarball to avoid managing them in
the job spec.
2020-05-15 12:22:15 -04:00
Michele 99e6dc8a3b Update cache 2020-05-15 10:15:37 -04:00
Michele f756efdcb1 Adding a fix 2020-05-15 10:15:37 -04:00
Michele 0150fc4c54 Move appveyor tests to circle 2020-05-15 10:15:37 -04:00
Buck Doyle eba07dabe5
CI: add xUnit reporting for UI tests (#7585)
This surfaces test failures more clearly on CircleCI by adding
testem-multi-reporter to report both via the default TAP reporter
as well as an xUnit reporter whose output is stored as an artefact.
2020-04-01 11:19:44 -05:00
Mahmood Ali 2698056311 ci: collect json file
Start collecting raw `go test -json` output to help with debugging odd
CI failures.
2020-03-24 21:47:21 -04:00
Mahmood Ali 8a8817beb7 ci: fix darwin artifact path 2020-03-23 15:42:44 -04:00
Mahmood Ali 17059d0a1e ci: use curl
It's installed by default in macOS unlike wget
2020-03-23 13:27:58 -04:00
Mahmood Ali 4f6a2cf65c ci: build darwin on CI
build darwin binaries in CI as a basic check.  Protects against
cross compile issues.
2020-03-23 13:27:24 -04:00
Mahmood Ali 3f27ad14d8 use golang 14.1 2020-03-23 13:02:14 -04:00
Kyle MacDonald d92ae83575 update website docker job to use proper git url 2020-03-20 15:43:36 -04:00
Mahmood Ali 92712c48eb
Merge pull request #7236 from hashicorp/b-remove-rkt
Remove rkt as a built-in driver
2020-03-17 09:07:35 -04:00
Yoan Blanc 62af14196a
ci: bump consul and vault
Signed-off-by: Yoan Blanc <yoan@dosimple.ch>
2020-03-15 11:01:55 +01:00
Buck Doyle 70d3491c4c
UI: Remove build-binaries job for UI-only branches (#7273) 2020-03-04 17:36:18 -08:00
Mahmood Ali 67bea52866 use golang 1.14 2020-03-02 13:55:02 -05:00
Mahmood Ali a8d6950007 Remove rkt as a built-in driver
Rkt has been archived and is no longer an active project:
* https://github.com/rkt/rkt
* https://github.com/rkt/rkt/issues/4024

The rkt driver will continue to live as an external plugin.
2020-02-26 22:16:41 -05:00
Drew Bailey 4ba846476b
make config.yml 2020-02-19 12:44:47 -05:00
Drew Bailey c507fd0e2e
refact to remove conditional nesting 2020-02-19 12:44:22 -05:00
Drew Bailey cb70f874b2
check if website-docker-image job should run 2020-02-19 09:20:31 -05:00
Jeff Escalante e35e1652cf
[website] CircleCI Script Updates (#7145)
* circle-ci script updates 🎉

* trigger deploy as a test

* remove testing items
2020-02-18 13:42:50 -05:00
Jeff Escalante b34c5aa187
circle config adjustments 2020-02-06 18:58:07 -05:00
Mahmood Ali fb68c7dcdc use golang 1.12.16 2020-01-29 09:52:03 -05:00
Mahmood Ali 6294fddb9c Update golang to 1.12.15 2020-01-16 14:49:44 -05:00
Mahmood Ali e8dc686019 ci: avoid building binaries in stable-website
This speeds up building and pushing releases
2019-11-22 15:40:22 -05:00
Mahmood Ali 500fb6f8ce ci: verify .circleci/config.yml is up to date 2019-11-22 14:50:49 -05:00
Mahmood Ali 57ff36df5c ci: avoid paging 2019-11-22 11:52:01 -05:00
Mahmood Ali 5c17bf36b8 ci: ignore docs only changes
Skip running backend and UI changes for docs/website updates, as
indicated by branch name.
2019-11-22 11:51:57 -05:00
Mahmood Ali e85886d33c git: only .circleci/config.yml is a generated one 2019-11-22 11:24:13 -05:00
Mahmood Ali 07fe93da3c ci: match ci timeout to go test timeout
make test-nomad sets 15 minute time out for build.  Increase the ci
timeout to 20m, so we can get meaningful output and goroutine stack
traces rather than have test be simply killed by CircleCI.

The extra 5 minutes is a buffer for generating-structs and some
unnecessary padding.
2019-11-20 20:39:23 -05:00
Mahmood Ali 7514658039 simply link to vault .circleci README 2019-11-20 15:02:10 -05:00
Mahmood Ali 52af6e973b Refactor circleci CI scripts
This adopts pattern used by Vault, where we split CircleCI yaml config
into multiple files that get packed and translated to 2.0.

This has two motivations: First, to ease translating config to CircleCI
2.0 so it can run on Enterprise private repository.  Second and most
importantly, it also adding Enterprise specific jobs in separate files
with reduced config file merging conflict resolution.
2019-11-20 15:02:08 -05:00
Mahmood Ali 45e91394ae build-deps-image no longer runs
This is a remenant of the time we used a custom hashicorp docker image for CI.
Currently, we use the official golang image, so no longer need the job
or manage the dockerhub credentials.
2019-11-20 14:57:48 -05:00
Mahmood Ali 29a457cbdd Ignore ci workflow in stable-website
`stable-website` branch is only meant for updating the nomadproject.io
website, and the backend tests are irrelevant.  Also, the ci workflow
uses up the plans containers and may delay website deployments by 20
minutes or more while we are cutting a release.
2019-11-20 14:57:45 -05:00
Mahmood Ali 7f1e9d8485 low case references 2019-11-20 14:56:42 -05:00
Tim Gross 11e0403173
ci: add build-binaries job for artifact storage (#6741) 2019-11-20 14:45:20 -05:00
Michael Schurter 1ba0daa577 release: switch to Go 1.12.13 2019-11-20 10:09:52 -05:00
Drew Bailey 2befab6900
Merge pull request #6573 from hashicorp/update-cci-consul
updates default consul version to 1.6.1
2019-11-07 11:01:22 -05:00
Mahmood Ali e8581166aa Test with Vault latest, 1.2.3
To ensure we test with latest with latest configuration.
2019-10-28 09:37:06 -04:00
Drew Bailey fa2c3450ea
updates default consul version to 1.6.1 2019-10-28 08:39:46 -04:00
Mahmood Ali e498bb951c e2e tests assume non-root user 2019-10-18 09:21:30 -04:00
Mahmood Ali c26866c0c8 adjust circleci scripts to use official golang image 2019-10-18 08:52:49 -04:00
Mahmood Ali 94dfcaad70 Use golang 1.12.12
Use use base official golang image in CircleCI, as it gets refreshed
more quickly compared to circleci/golang, and we don't benefit from
circleci image customizations much.
2019-10-18 08:44:47 -04:00
Lang Martin d1e173c476 circleci: disable test-rkt, which is deprecated and often fails 2019-10-10 13:46:33 -04:00
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
Buck Doyle e4e055b503
Remove website job for UI branches (#6273) 2019-09-09 10:57:07 -05:00
Danielle Lancashire d970d5ee00
ci: Support non amd64 architectures 2019-08-31 18:34:22 +02:00
Danielle Lancashire 4fcb7394e9
client: Fix memory fingerprinting on 32bit
Also introduce regression ci for 32 bit fingerprinting
2019-08-31 18:33:59 +02:00
Danielle Lancashire 67488e2b19
ci: Migrate remaining jobs to CircleCI 2019-08-30 13:44:23 +02:00
Mahmood Ali acec5a751a upgrade machine image for most jobs
Looks like the host unattended upgrades is interferring with chroot
creation.  Here, we upgrade machine image to one without unattended
upgrades misconfigured, across the board except for the `test-docker`
job.

Docker seems to be misbehaving on that image, and we get some unexpected
cgroups errors, e.g. https://circleci.com/gh/hashicorp/nomad/3854 .

Sample recent failures of `test-exec`:

https://circleci.com/gh/hashicorp/nomad/3633
https://circleci.com/gh/hashicorp/nomad/3696
https://circleci.com/gh/hashicorp/nomad/3714
https://circleci.com/gh/hashicorp/nomad/3764
https://circleci.com/gh/hashicorp/nomad/3770
https://circleci.com/gh/hashicorp/nomad/3834
2019-08-28 09:50:56 -04:00
Mahmood Ali e17d7338fc use circleci/golang images directly
We currently use an container image for `test-devices` job only; while
all other jobs use machine executor.

This allows us to switch golang and protoc verions easily without
manually managing Docker images (which requires building them manually
on a dev machines, etc).  All that while, we install dependencies on
every build in all other jobs..

`test-devices` now is one of the fastest jobs and isn't a constraint or
a bottleneck, so increasing its overhead by few seconds doesn't hurt the
overall developer iteration.

If we split tests effectively later, we can revisit.
2019-08-23 21:59:49 -04:00
Mahmood Ali c832853436 use a new image with proper protoc dependency
Fixes `test-devices` job
2019-08-23 21:33:07 -04:00
Mahmood Ali 74bc5a2c0b update circleci builds to use golang 1.12.9 2019-08-23 12:26:47 -04:00
Mahmood Ali afbe967583
Merge pull request #6187 from hashicorp/c-circleci-tweak-20190822
ci: Use more recent base machine executor image for test-rkt
2019-08-22 11:10:05 -04:00
Mahmood Ali 4a94d4ec1d ci: Use more recent base machine executor image
This fixes a frequent failure in `test-rkt` jobs where dpkg installation
fails.

The image used currently, circleci/classic:201808-01, has unattended
upgrades enabled accidentally, which runs on every build.  This means
that tools get modified unexpectedly during builds, and apt-get commands
may fail as the unattended upgrade is holding package database lock.

This updates `test-rkt` job only because the new image breaks
`test-docker` job (e.g. https://circleci.com/gh/hashicorp/nomad/2641 ),
and I punted on investigating test-docker for another day.
2019-08-22 10:31:57 -04:00
Buck Doyle 2900659a3c
UI: Add CircleCI job (#6125)
This adds a job to test the UI on CircleCI, including the sort of branch
pattern-matching from #5839, so .-ui/ branches only have that job
and not the non-UI ones.

I considered having an entire workflow for UI, which could have separate
jobs for linting vs Ember tests, but the lint commands take so little time
that it didn’t seem worth it.

There’s no use of nvm to change the Node version as the Docker image
is what controls that. It’s annoying to have to update the version in multiple
places, but probably infrequent.
2019-08-21 08:56:37 -05:00
Michael Schurter 85aaba14ed ci: require Consul 1.6.0-rc1 2019-08-20 13:23:23 -07:00
Tim Gross 2e1d6d2167 ci: add GOMAXPROCS=1 to lint step to avoid OOM 2019-08-14 14:10:23 -04:00
Mahmood Ali 62d3eb235c parameterize golang version 2019-08-13 09:26:44 -04:00
Mahmood Ali d8ce90dde6 circleci: fix test reports and some refactoring 2019-08-12 20:30:20 -04:00
Danielle Lancashire 80b8913745
api requires mount 2019-08-12 18:48:25 +02:00
Danielle Lancashire f64b26fc3b
fix paths 2019-08-12 18:41:37 +02:00
Danielle Lancashire 083e9b1276
update docker file and switch to go 1.12.7 2019-08-12 18:41:37 +02:00
Danielle Lancashire c87ef42a3e
ci: Generate structs when testing 2019-08-12 18:41:37 +02:00
Danielle Lancashire e209bc3ac3
Use script to install protoc 2019-08-12 18:41:36 +02:00
Danielle Lancashire 892c322299
DRY up config 2019-08-12 18:41:36 +02:00
Danielle Lancashire c4bd6b45f3
Don't log env 2019-08-12 18:41:36 +02:00
Danielle Lancashire 27e72bbadd
Test Rocket 2019-08-12 18:41:36 +02:00
Danielle Tomlinson 886486e694
ci: Migrate to CircleCI
This commit provides an initial migration of general testing CI
infrastructure to CircleCI.

It uses CircleCI 2.1 paramereterised jobs to provide two base
configurations: a vm based `test-machine`, and docker based
`test-container`.

Jobs that require root, docker, or other similar features require the
machine based jobs, but others should be ran using the `test-container` package
as they are both cheaper and faster to run.
2019-08-12 18:41:36 +02:00
Alvin Huang 436229fd31 add circleci website build 2018-11-20 16:59:34 -05:00