Commit Graph

185 Commits

Author SHA1 Message Date
Daniel Nephin c5b7c072fd ci: Upgrade Go to 1.14.1 2020-03-24 15:55:47 -04:00
Daniel Nephin 61ec7aa5c9 ci: Run all connect/ca tests from the integration suite
To reduce the chance of some tests not being run because it does not
match the regex passed to '-run'.

Also document why some tests are allowed to be skipped on CI.
2020-03-24 15:22:01 -04:00
Daniel Nephin 3418835677 ci: fix cherry-pick job by using newer git
37897bfc27 made it possible to use
the -m flag with cherry-pick, even when the target is not a merge commit.

This commit changes the image used to run the cherry-pick job to alpine so that we get
a more recent version of git.

The alpine image will also download much faster when the CI node does not have the image cached.
2020-03-23 14:30:32 -04:00
Daniel Nephin 3f8578f1e1 ci: Use golangci-lint for linting
Using golangci-lint has a number of advantages:

- adding new linters becomes much easier, its a couple lines of yaml config
  instead of more bash scripting

- it enables whitelisting of issues using inline comments or regex

- when running multiple linters less work is done. The parsed source can be reused
  by multiple linters

- linters are run in parallel to reduce CI runtime.
2020-03-17 13:43:40 -04:00
Daniel Nephin 3cfe1c1943 ci: Remove restore_cache
As of go1.13 it is faster to download dependencies from the module
proxy service, than to download a cached /go/pkg/mod
2020-03-11 15:50:42 -04:00
Alvin Huang 45bbb6e035
add auto cherry-picking (#7406)
* add auto cherry-picking

* exit on git cherry-pick failure

* release branches are #.#.x
2020-03-06 17:59:14 -05:00
Mike Morris 3532c56c5f Update config.yml 2020-02-18 13:27:48 -05:00
Alvin Huang 58a3e51721
skip go build and tests on ui/* branches (#7303)
* skip go build and tests on ui/* branches

* also filter out lint-consul-retry since it runs in parallel with check-vendor
2020-02-14 09:40:02 -05:00
Alvin Huang 777f2f4f12
only run website workflow on docs/* branches (#7299) 2020-02-13 21:41:37 -05:00
Alvin Huang 629a3ff08a
remove docker layer caching (#7277) 2020-02-12 13:56:16 -05:00
R.B. Boyer fdb6b80672
Switch to go 1.13.7 (#7262)
- You can no longer cross submodule boundaries with ./... in go
  subcommands like `go list` or `go test`. The makefile and CI scripts
  were updated accordingly.

- Also of note: `go mod vendor` now omits things build ignored.
2020-02-12 10:15:24 -06:00
Hans Hasselberg 9cb7adb304
add envoy version 1.12.2 and 1.13.0 to the matrix (#7240)
* add 1.12.2

* add envoy 1.13.0

* Introduce -envoy-version to get 1.10.0 passing.

* update old version and fix consul-exec case

* add envoy_version and fix check

* Update Envoy CLI tests to account for the 1.13 compatibility changes.

Co-authored-by: Matt Keeler <mkeeler@users.noreply.github.com>
2020-02-10 14:53:04 -05:00
John Cowen 6b45aebfda
Merge pull request #7241 from hashicorp/ui-staging
UI Release Merge (ui-staging merge)
2020-02-07 16:07:05 +00:00
John Cowen eb35d89893
ui: Run 2 separate test runs oss and ent (#7214)
* ui: Make API integration tests aware of CONSUL_NSPACES_ENABLED

* ui: Allow passing CONSUL_NSPACES_ENABLED in via the cli in ember

* ui: Add more makefile targets/package scripts to switch NSPACEs on/off

* ui: Ensure all acceptance tests continue to pass with NSPACEs on/off

This required a little tweaking of the dictionary, at some point
page-navigation and some of these little tweaks will no longer be
required

* ui: Try running CI frontend tests in two parellel runs oss/ent

* ui: Use correct make target, use different names for the reports
2020-02-07 11:02:53 +00:00
Kenia cb69613bf6
Merge pull request #7235 from hashicorp/ui-staging
ui: UI Release Merge (ui-staging merge)
2020-02-06 15:34:02 -05:00
Hans Hasselberg fe49ea404d
build: update to golang 1.12.16 (#7153) 2020-02-03 18:20:03 +01:00
John Cowen 7f786d809e
ui: Actually remove CI parallelism (#7190) 2020-01-31 14:47:39 +00:00
John Cowen d5b6f3095e
ui: Move CI to use the Makefile for testing (+ tmporary removal of exam) (#7188)
* ui: Move CI to use the Makefile for testing (+ tmporary removal of exam)

* ui: make a specific test-ci target as we are using --path dist

--path dist looks for a previous build to test against, in CI this
exists as we run a build first, but locally potentially this dist folder
doesn't
2020-01-31 14:12:35 +00:00
Alvin Huang 33bfc02fda
use 4 parallelism for go-test and print package names (#7152) 2020-01-28 12:21:55 -05:00
Kit Patella d2d1f98423
CI: Extract remaining values of /tmp/test-results into yaml reference (#6964)
* ci: extract value /tmp/test-results into yaml reference calls

* ci: correctly subtitute a var in bash, womp womp
2019-12-17 15:18:10 -08:00
Kit Patella 0d61369fcd
Add CI test-integrations job for connect Vault CA provider (#6949)
* vault-ca-provider: add make target and CI test-integration job for /agent/connect/ca/ Vault Provider tests

* load env vars in the vault-ca-provider ci job

* add checkout task, see if we need to attach workspace or not

* ci: remove vault dependency from go-test job to ensure we only run the vault-provider tests in their job

* ci: fix from RB and Alvin code review, add mod cache after checkout

* ci: add CI context to make target and store test results

* ci: fix whitespace

* ci: create test results directory before we try to write to it
2019-12-17 13:22:32 -08:00
Mike Morris 83c84d4e7e
coverage: disable comment and project status, set informational mode (#6954)
* ci: set verbose mode for CodeCov upload

* coverage: rename config to codecov.yml
2019-12-17 11:51:52 -05:00
R.B. Boyer 7ac47d6f61
build: fix makefile and CI 'fmt' and 'vet' tasks (#6937) 2019-12-11 12:32:11 -06:00
Mike Morris a2f2ec82e4
ci: set GOMAXPROCS (#6908)
* ci: add comment clarify rationale for setting GOMAXPROCS
2019-12-09 15:57:39 -05:00
Matt Keeler bd0db7c000
Turn down some parallelism 2019-11-25 14:34:24 -05:00
Alvin Huang b7bd4def8f
add code coverage reporting (#6682)
* add coverage reporting

* add codecov reports

* pass in SHA to codecov

* ignore bindata_assetfs.go file from codecov
2019-11-22 11:49:02 -05:00
Alvin Huang 894bad6162
upgrade go to 1.12.13 (#6759) 2019-11-08 13:59:32 -05:00
Alvin Huang 843364f990
ignore all workflows except website for stable-website (#6747) 2019-11-08 12:55:56 -05:00
Alvin Huang 3361bab1bc
modify netlify-cli installation (#6674)
* modify netlify CLI installation

* bump middleman-hashicorp to 0.3.40 to include ssh
2019-10-23 13:54:19 -04:00
Matt Keeler 973341a592
ACL Authorizer overhaul (#6620)
* ACL Authorizer overhaul

To account for upcoming features every Authorization function can now take an extra *acl.EnterpriseAuthorizerContext. These are unused in OSS and will always be nil.

Additionally the acl package has received some thorough refactoring to enable all of the extra Consul Enterprise specific authorizations including moving sentinel enforcement into the stubbed structs. The Authorizer funcs now return an acl.EnforcementDecision instead of a boolean. This improves the overall interface as it makes multiple Authorizers easily chainable as they now indicate whether they had an authoritative decision or should use some other defaults. A ChainedAuthorizer was added to handle this Authorizer enforcement chain and will never itself return a non-authoritative decision.

* Include stub for extra enterprise rules in the global management policy

* Allow for an upgrade of the global-management policy
2019-10-15 16:58:50 -04:00
Alvin Huang 8d4b8eae38
add go cache to distro builds (#6600) 2019-10-08 15:55:36 -04:00
John Cowen b3b32dc0f6
ui: UI Release Merge (ui-staging merge) (#6527)
## HTTPAdapter (#5637)

## Ember upgrade 2.18 > 3.12 (#6448)

### Proxies can no longer get away with not calling _super

This means that we can't use create anymore to define dynamic methods.
Therefore we dynamically make 2 extended Proxies on demand, and then
create from those. Therefore we can call _super in the init method of
the extended Proxies.

### We aren't allowed to reset a service anymore

We never actually need to now anyway, this is a remnant of the refactor
from browser based confirmations. We fix it as simply as possible here
but will revisit and remove the old browser confirm functionality at a
later date

### Revert classes to use ES5 style to workaround babel transp. probs

Using a mixture of ES6 classes (and hence super) and arrow functions
means that when babel transpiles the arrow functions down to ES5, a
reference to this is moved before the call to super, hence causing a js
error.

Furthermore, we the testing environment no longer lets use use
apply/call on the constructor.

These errors only manifests during testing (only in the testing
environment), the application itself runs fine with no problems without
this change.

Using ES5 style class definitions give us freedom to do all of the above
without causing any errors, so we reverted these classes back to ES5
class definitions

### Skip test that seems to have changed due to a change in RSVP timing

This test tests a usecase/area of the API that will probably never ever
be used, it was more testing out the API. We've skipped the test for now
as this doesn't affect the application itself, but left a note to come
back here later to investigate further

### Remove enumerableContentDidChange

Initial testing looks like we don't need to call this function anymore,
the function no longer exists

### Rework Changeset.isSaving to take into account new ember APIs

Setting/hanging a computedProperty of an instantiated object no longer
works. Move to setting it on the prototype/class definition instead

### Change how we detect whether something requires listening

New ember API's have changed how you can detect whether something is a
computedProperty or not. It's not immediately clear if its even possible
now. Therefore we change how we detect whether something should be
listened to or not by just looking for presence of `addEventListener`

### Potentially temporary change of ci test scripts to ensure deps exist

All our tooling scripts run through a Makefile (for people familiar with
only using those), which then call yarn scripts which can be called
independently (for people familar with only using yarn).

The Makefile targets always check to make sure all the dependencies are
installed before running anything that requires them (building, testing
etc).

The CI scripts/targets didn't follow this same route and called the yarn
scripts directly (usually CI builds a cache of the dependencies first).

For some reason this cache isn't doing what it usually does, and it
looks as though, in CI, ember isn't installed.

This commit makes the CI scripts consistently use the same method as all
of the other tooling scripts (Makefile target > Install Deps if
required > call yarn script). This should install the dependencies if
for some reason the CI cache building doesn't complete/isn't successful.

Potentially this commit may be reverted if, the root of the problem is
elsewhere, although consistency is always good, so it might be a good
idea to leave this commit as is even if we need to debug and fix things
elsewhere.

### Make test-parallel consistent with the rest of the tooling scripts

As we are here making changes for CI purposes (making test-ci
consistent), we spotted that test-parallel is also inconsistent and also
the README manual instructions won't work without `ember` installed
globally.

This commit makes everything consistent and changes the manual
instructions to use the local ember instance that gets installed via
yarn

### Re-wrangle catchable to fit with new ember 3.12 APIs

In the upgrade from ember 3.8 > 3.12 the public interfaces for
ComputedProperties have changed slightly. `meta` is no longer a public
property of ComputedProperty but of a ComputedDecoratorImpl mixin
instead.

7e4ba1096e/packages/%40ember/-internals/metal/lib/computed.ts (L725)

There seems to be no way, by just using publically available
methods, to replicate this behaviour so that we can create our own
'ComputedProperty` factory via injecting the ComputedProperty class as
we did previously.

3f333bada1/ui-v2/app/utils/computed/factory.js (L1-L18)

Instead we dynamically hang our `Catchable` `catch` method off the
instantiated ComputedProperty. In doing it like this `ComputedProperty`
has already has its `meta` method mixed in so we don't have to manually
mix it in ourselves (which doesn't seem possible)

This functionality is only used during our work in trying to ensure
our EventSource/BlockingQuery work was as 'ember-like' as possible (i.e.
using the traditional Route.model hooks and ember-like Controller
properties). Our ongoing/upcoming work on a componentized approach to
data a.k.a `<DataSource />` means we will be able to remove the majority
of the code involved here now that it seems to be under an amount of
flux in ember.

### Build bindata_assetfs.go with new UI changes
2019-09-30 14:47:49 +01:00
R.B. Boyer 796de297c8
connect: intermediate CA certs generated with the vault provider lack URI SANs (#6491)
This only affects vault versions >=1.1.1 because the prior code
accidentally relied upon a bug that was fixed in
https://github.com/hashicorp/vault/pull/6505

The existing tests should have caught this, but they were using a
vendored copy of vault version 0.10.3. This fixes the tests by running
an actual copy of vault instead of an in-process copy. This has the
added benefit of changing the dependency on vault to just vault/api.

Also update VaultProvider to use similar SetIntermediate validation code
as the ConsulProvider implementation.
2019-09-23 12:04:40 -05:00
R.B. Boyer 708b2a917c ci: ensure build-distros uses the same go.mod file as normal builds
When running 'make tools' the go command indirectly edits both the
go.mod and go.sum files in ways that can cause the later build of consul
itself to build with slightly different dependencies than it normally
would.
2019-09-23 11:26:02 -05:00
Alvin Huang e11d07a685
remove nightly master merge into release/ job (#6510) 2019-09-19 10:28:49 -04:00
Matt Keeler 593a587f4d
Move tar install forward (#6483) 2019-09-12 17:25:14 -04:00
Matt Keeler 99499170cf
Also install tar for the website deploy job (#6482) 2019-09-12 17:05:02 -04:00
R.B. Boyer 5c1104b285
ci: inject missing tar binary (#6477) 2019-09-11 10:41:02 -05:00
R.B. Boyer 9df6e77afb
test: actually run envoy 1.11.1 integration tests on PRs (#6397) 2019-08-26 16:30:17 -05:00
Alvin Huang fbb3b8d5ab Merge Consul OSS branch 'master' at commit 59150281c5 2019-08-21 18:22:19 -04:00
Alvin Huang 59150281c5
print a proper error message for master merge CI job failures (#6371) 2019-08-21 18:19:47 -04:00
Alvin Huang 52041cc278 Merge Consul OSS branch 'master' at commit ce9cfc773d 2019-08-21 16:07:04 -04:00
Alvin Huang ce9cfc773d
remove ci merge branches if nightly merge fails (#6369) 2019-08-21 15:56:27 -04:00
Matt Keeler 9a5b258edf
Turned on Envoy 1.11.1 integration tests (#6347)
I also ran this against 1.5.2 so the docs update claiming compatibility should still be accurate.
2019-08-20 10:20:13 -04:00
Matt Keeler 6d995246a8
Update toolchain to Go 1.12.8 (#6319) 2019-08-14 09:40:57 -04:00
Mike Morris 65be58703c
connect: remove managed proxies (#6220)
* connect: remove managed proxies implementation and all supporting config options and structs

* connect: remove deprecated ProxyDestination

* command: remove CONNECT_PROXY_TOKEN env var

* agent: remove entire proxyprocess proxy manager

* test: remove all managed proxy tests

* test: remove irrelevant managed proxy note from TestService_ServerTLSConfig

* test: update ContentHash to reflect managed proxy removal

* test: remove deprecated ProxyDestination test

* telemetry: remove managed proxy note

* http: remove /v1/agent/connect/proxy endpoint

* ci: remove deprecated test exclusion

* website: update managed proxies deprecation page to note removal

* website: remove managed proxy configuration API docs

* website: remove managed proxy note from built-in proxy config

* website: add note on removing proxy subdirectory of data_dir
2019-08-09 15:19:30 -04:00
Alvin Huang 206b2016a4 Merge remote-tracking branch 'origin/master' into release/1-6 2019-08-02 18:09:32 -04:00
Alvin Huang de01a1e279
add generic master merge into release/* branches (#6249) 2019-08-02 16:11:41 -04:00
Alvin Huang dd7b3ece64
Add arm builds (#6263)
* try arm builds

* Update .circleci/config.yml

Co-Authored-By: Matt Keeler <mkeeler@users.noreply.github.com>

* Update .circleci/config.yml

Co-Authored-By: Matt Keeler <mkeeler@users.noreply.github.com>

* Update .circleci/config.yml

Co-Authored-By: Matt Keeler <mkeeler@users.noreply.github.com>
2019-08-02 15:15:59 -04:00
R.B. Boyer c6c4a2251a Merge Consul OSS branch master at commit b3541c4f34 2019-07-26 10:34:24 -05:00
Alvin Huang 54ef3d5a40
check vendor folder (#6006)
* check vendor in circleci

* make vendor checking step more descriptive

* reorganize check-vendor and gofmt jobs
2019-07-25 11:17:07 -04:00
Alvin Huang 3558f9cf6d
add dev docker image upload (#5879)
* add dev docker image upload

* remove the go cache since that isn't needed

* add comment and image labels

* get password from stdin
2019-07-25 09:19:09 -04:00
Alvin Huang ef6b80bab2 resolve circleci config conflicts 2019-07-23 20:18:36 -04:00
Alvin Huang 7c1f98e9a4
enable circleci go tests for forks and reorganize jobs (#6191) 2019-07-22 18:08:54 -04:00
Alvin Huang 6fba0106a3
Run go test packages in parallel (#6165)
* modify gotestsum hacking that is unnecessary with the latest version

* try running 2 packages at a time

* try running 3 packages at a time

* remove old comments
2019-07-22 14:01:22 -04:00
Alvin Huang 6f1953d96d Merge branch 'master' into release/1-6 2019-07-17 15:43:30 -04:00
Alvin Huang 7b0614ea82
turning on go tests in circle for non-forks (#6154)
* turning on go tests in circle for non-forks

* fix comment
2019-07-17 13:43:33 -04:00
hashicorp-ci fa20c7db97 Merge Consul OSS branch 'master' at commit 95dbb7f2f1 2019-07-17 02:00:21 +00:00
Alvin Huang 95dbb7f2f1
add lint-consul-retry tool (#6139)
* add lint-consul-retry tool

* lint consul retry for forks too
2019-07-16 18:52:24 -04:00
Alvin Huang ef8e5747eb increase go test parallelism, resource_class and run tests on release branch (#2) 2019-07-01 16:28:30 -04:00
Alvin Huang 381be88a14
remove skip-checks on git merge (#6017)
* remove skip-checks on git merge

* remove comments for skip-checks
2019-06-25 16:46:17 -04:00
hashicorp-ci 4d185baf55 Merge Consul OSS branch 'master' at commit 88b15d84f9
skip-checks: true
2019-06-25 02:00:26 +00:00
Alvin Huang cf26656863
Override cla check and add slack notifications (#6007)
* override CLA check

* add slack notifications for merge

* don't delete unmerged branch to ease debugging
2019-06-24 18:55:44 -04:00
Alvin Huang 52af58c93f
skip checks on merge commit (#6000) 2019-06-20 16:27:45 -04:00
Alvin Huang 3a6c0eaf55
add master merge to release branch (#5980)
* add master merge to release branch

* remove CircleCI token, use shallow API call, and use commit SHA for merge
2019-06-18 15:56:58 -04:00
Alvin Huang b9951cc626
update website build to exclude guides (#5951) 2019-06-14 16:55:18 -04:00
Paul Banks ffcfdf29fc
Upgrade xDS (go-control-plane) API to support Envoy 1.10. (#5872)
* Upgrade xDS (go-control-plane) API to support Envoy 1.10.

This includes backwards compatibility shim to work around the ext_authz package rename in 1.10.

It also adds integration test support in CI for 1.10.0.

* Fix go vet complaints

* go mod vendor

* Update Envoy version info in docs

* Update website/source/docs/connect/proxies/envoy.md
2019-06-07 07:10:43 -05:00
Alvin Huang bb602bf719
exclude agent/proxyprocess tests since it will be removed in 1.6 (#5878) 2019-05-21 17:19:37 -04:00
Alvin Huang c8dc8049c4
enable go tests (#5863) 2019-05-17 11:42:56 -04:00
Paul Banks 421ecd32fc
Connect: allow configuring Envoy for L7 Observability (#5558)
* Add support for HTTP proxy listeners

* Add customizable bootstrap configuration options

* Debug logging for xDS AuthZ

* Add Envoy Integration test suite with basic test coverage

* Add envoy command tests to cover new cases

* Add tracing integration test

* Add gRPC support WIP

* Merged changes from master Docker. get CI integration to work with same Dockerfile now

* Make docker build optional for integration

* Enable integration tests again!

* http2 and grpc integration tests and fixes

* Fix up command config tests

* Store all container logs as artifacts in circle on fail

* Add retries to outer part of stats measurements as we keep missing them in CI

* Only dump logs on failing cases

* Fix typos from code review

* Review tidying and make tests pass again

* Add debug logs to exec test.

* Fix legit test failure caused by upstream rename in envoy config

* Attempt to reduce cases of bad TLS handshake in CI integration tests

* bring up the right service

* Add prometheus integration test

* Add test for denied AuthZ both HTTP and TCP

* Try ANSI term for Circle
2019-04-29 17:27:57 +01:00
Alvin Huang 8ceca2ace3
Add fmt and vet (#5671)
* add go fmt and vet

* go fmt fixes
2019-04-25 12:26:33 -04:00
Alvin Huang 05946afa0c
Add website analytics back (#5699)
* add website analytics to build

* add segment analytics env var check
2019-04-25 12:24:20 -04:00
Alvin Huang ed6fd1ec41 checkout code outside GOPATH 2019-04-10 12:56:55 -04:00
Alvin Huang 172652a7cb link check only on non-forks 2019-04-05 10:38:27 -04:00
Alvin Huang a05363161d add link checking to CI and split website build/deploy 2019-04-04 18:59:00 -04:00
Alvin Huang 4d958951ee remove envvar for s3 path from config file and error check s3 cp 2019-04-04 16:07:14 -04:00
Alvin Huang 4eb58439af add s3 upload to dev bucket 2019-04-04 15:21:33 -04:00
Jeff Mitchell 47c390025b
Convert to Go Modules (#5517)
* First conversion

* Use serf 0.8.2 tag and associated updated deps

* * Move freeport and testutil into internal/

* Make internal/ its own module

* Update imports

* Add replace statements so API and normal Consul code are
self-referencing for ease of development

* Adapt to newer goe/values

* Bump to new cleanhttp

* Fix ban nonprintable chars test

* Update lock bad args test

The error message when the duration cannot be parsed changed in Go 1.12
(ae0c435877d3aacb9af5e706c40f9dddde5d3e67). This updates that test.

* Update another test as well

* Bump travis

* Bump circleci

* Bump go-discover and godo to get rid of launchpad dep

* Bump dockerfile go version

* fix tar command

* Bump go-cleanhttp
2019-03-26 17:04:58 -04:00
Alvin Huang ee9346f4c3 adding distro builds to circleci 2019-03-22 14:49:49 -04:00
Alvin Huang 329d8b7cfb refactor circleci config to 2.0 2019-03-08 16:03:40 -05:00
Alvin Huang f11980b5d0 add nomad int test 2019-01-28 18:22:00 -05:00
Alvin Huang b92c34d568 refresh cache key and fix comments 2019-01-03 22:57:40 -05:00
Alvin Huang 0b052ccc99 using build-ci target in circleci 2019-01-03 22:27:17 -05:00
Alvin Huang ddefaa2c2d test circleci 2019-01-03 22:27:02 -05:00
Alvin Huang c7e55009f1 add circleci website build
fix up run commands
2018-11-16 17:05:19 -05:00