Commit graph

47 commits

Author SHA1 Message Date
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