Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(ci) build nightly releases from jenkins instead of travis-ci #5243

Closed
wants to merge 24 commits into from

Conversation

hutchic
Copy link
Contributor

@hutchic hutchic commented Nov 21, 2019

Moves the kong nightly builds off of travis-ci onto a internal private jenkins instance.

This has been running on a Kong fork for about a week successfully and jenkins is configured in such a way that it will not report failures back to github

Capture

@hutchic hutchic changed the base branch from next to master November 21, 2019 16:31
bungle and others added 24 commits November 21, 2019 16:41
aws-lambda plugin now lives in its own repo. It also was upgraded
with several new features. See changelog.
-  add `authenticated_groups` to storage
#### 1.7.0 (2019-10-14)

##### New features

- utils.quote_arg will now optionally take an array of arguments and escape them all into a single string.
- app.parse_args now accepts a 3rd parameter with a list of valid flags and aliases
- app.script_name returns the name of the current script (previously a private function)

##### Changes

- Documentation updates
- utils.quit: exit message is no longer required, and closes the Lua state (on 5.2+).
- utils.assert_arg and utils.assert_string: now return the validated value
- pl.compat: now exports the jit and jit52 flags
- pretty.write: now sorts the output for easier diffs #293

##### Fixes

- utils.raise changed the global on_error-level when passing in bad arguments
- utils.writefile now checks and returns errors when writing
- compat.execute now handles the Windows exitcode -1 properly
- types.is_empty would return true on spaces always, indepedent of the parameter
- types.to_bool will now compare case-insensitive for the extra passed strings
- app.require_here will now properly handle an absolute base path
- stringx.split will no longer append an empty match if the number of requested elements has already been reached #295
- path.common_prefix and path.relpath return the result in the original casing (only impacted Windows) #297
- dir.copyfile, dir.movefile, and dir.makepath create the new file/path with the requested casing, and no longer force lowercase (only impacted Windows) #297
- added a missing assertion on path.getmtime #291
- stringx.rpartition returned bad results on a not-found #299

#### 1.6.0 (2018-11-23)

##### New features

- pl.compat now provides unpack as table.unpack on Lua 5.1

##### Changes

- utils.unpack is now documented and respects .n field of its argument.
- tablex.deepcopy and tablex.deepcompare are now cycle aware (#262)
- Installing through LuaRocks will now include the full rendered documentation

##### Fixes

- Fixed seq.last returning nil instead of an empty list when given an empty iterator (#253).
- pl.template now applies tostring when substituting values in templates, avoiding errors when they are not strings or numbers (#256).
- Fixed pl.import_into not importing some Penlight modules (#268).
- Fixed version number stuck at 1.5.2 (#260).
- Fixed types.is_empty returning true on tables containing false key (#267).
- Fixed test.assertraise throwing an error when passed an array with a function to call plus its arguments (#272).
- Fixed test.assertraise not throwing an error when given function does not error but instead returns a string matching given error pattern.
- Fixed placeholder expressions being evaluated with wrong precedence of binary and unary negation.
- Fixed placeholder expressions being evaluated assuming wrong binary operator associativity (e.g. _1-(_2+_3) was evaluated as (_1-_2)+_3.
- Fixed placeholder expressions being evaluated as if unary operators take precedence over power operator (e.g. (-_1)^_2) was evaluated as -(_1^2)).
- Fixed vulnerable backtracking pattern in pl.stringx.strip (#275)
the plugin will now add the tags `name`, `status` and `consumer` to the metrics:

- upstream_latency
- kong_latency
- latency
- request_count
- request_size
- response_size

The tags `name` and `status` will have the value of the service name and http status code respectively.  The tag `consumer` is only added if the `consumer_identifier` is specified.

As a result, only 6 metrics are reported to datadog:

- kong.upstream_latency
- kong.kong_latency
- kong.latency
- kong.request.count
- kong.request.size
- kong.response.size

These tags make the following metrics redundant and are no longer reported:

-  status_count
-  status_count_per_user
-  unique_users
-  request_per_user

upgrade your datadog queries
----------------------------
If you have datadog dashboards and alerts based on the old-style metrics, you need to change them to use the new tag based metrics.

For instance the following query:
```
	avg:kong.sample_service.latency.avg{*}
```
would need to change to:

```
	avg:kong.latency.avg{name:sample-service}
```

----------------
for efficiency purposes, we suggest to use only configure the latency metric, if required with the consumer identification configured. It will carry all the information: response times, status code, consumer and volume.
New cache `kong.core_cache` is meant for core usage, while the existing
`kong.cache` is used in, e.g., plugins.

This is mostly an internal refactor, but since this has user-visible effects
(safer cache behavior and impacts the meaning of the `mem_cache_size`
configuration entry), we're scoping this as a `feat`-ure.
added unit test healthchecks.threshold param validation
Allow routes to specify a port in the host parameter. If present, it
matches only requests to that specific port. If absent, requests to
any port will match. Requests without explicit port are handled as if
they included the appropriate default port (80 for HTTP, 443 for
HTTPs). Routes with a port have higher priority than those without;
even for requests without an explicit port in the Host header.

From #5102
This change reverts some breaking changes introduced by #3780, involving
the handling of slashes inside the router.

Fixes #4469

Related with #4538 (this PR is essentially the same as that other PR,
but assuming that `path_separated` is always `true` for everyone)
### Summary

##### LuaSec 0.9

- Add DNS-based Authentication of Named Entities (DANE) support
- Add __close() metamethod
- Fix deprecation warnings with OpenSSL 1.1
- Fix special case listing of TLS 1.3 EC curves
- Fix general_name leak in cert:extensions()
- Fix unexported 'ssl.config' table
- Replace $(LD) with $(CCLD) variable
- Remove multiple definitions of 'ssl_options' variable
- Use tag in git format: v0.9

##### LuaSec 0.8.2

- Fix unexported 'ssl.config' table (backported)

##### LuaSec 0.8.1

- Fix general_name leak in cert:extensions() (backported)
Makes it so that dao options table can now pass:

```
{
  pagination = {
    page_size = 100,
    max_page_size = 1000,
  }
}
```

This is used by `endpoints` auto-generator.

It also makes it so that each dao, e.g. `kong.db.routes` has their own
pagination settings (derived from the default values specified in
`connector`):

```
kong.db.routes.pagination.page_size =
  <this could be changed dynamically on runtime based on number of rows>
```

From #5133
Use `master` when building a PR against `master` or tagged release, and `next` for all other branches.
Prior to 1.3, the router had ambiguous matching for prefix routes if a
route with a better prefix match existed for another hostname. The
router would add the better prefix match to the set of reduced
candidates, but not match it because of the hostname mismatch.

After failing to match any candidates in the reduced set, the router
would then proceed checking a larger candidate set, selecting the first
match. Because the larger candidate set was effectively sorted by
creation date, a route with a shorter, matching prefix would match
instead of a more specific prefix created later.

2683b86 fixed this issue in most cases
by adding the longest path length to route sorting criteria. It was
originally designed to fix a different issue, and as such did not test
this case.

There are some remaining edge cases. For example:

If created in the following order, versions prior to 1.3 would match
"example.com/a/b/c" to the first route, whereas 1.3+ matches the second:
"hosts":{"example.com"} "paths":{"/a"}
"hosts":{"example.com"} "paths":{"/a/b"}
"hosts":{"example.net"} "paths":{"/a/b/c"}

1.3+ will, however, still match the first route in this set of routes:
"hosts":{"example.com"} "paths":{"/a", "/long/long/path"}
"hosts":{"example.com"} "paths":{"/a/b"}
"hosts":{"example.net"} "paths":{"/a/b/c"}

Manually setting regex_priority on problem is still the recommended
means of making the second route match in the second set.
### Summary

Changes:
-  add support for O_TRUNC
)

* chore(ci) [skip travis] move nightly releases to Jenkins

* [skip travis]

* [skip travis] split plugin tests out and login to docker when building the docker test image

* [skip travis] try a different way of defining the KONG_VERSION env

* [skip travis] skip the problematic builds

* [skip travis] move the daily deploys out of travis.yml

* [skip travis] wip debugging a sporadically failing test

* fix(tests) adjust how we run the report mock server for a more reliable test

* chore(ci) debug the environment variables available in jenkins [skip travis]

* chore(ci) set the repository os name environment variable [skip travis]

* test(reports) adjust how we check if the report server can run

* chore(ci) adjust the jenkins setup [skip travis]

* chore(wip) remove the integration tests to focus on getting the nightly releases to work

* fix(ci) adjust how set set the bintray credentials [skip travis]

* wip -- debugging daily releases to bintray [skip travis]

* chore(ci) run only the xenial release [skip travis]

* chore(ci) re-enable tests and other distribution releases

* chore(ci) add the CI cron trigger

chore(dependency) bump the kong-build-tools dependency (#168)

chore(dependencies) adjust kong-build-tools dependency pin (#169)

* chore(dependency) bump the kong-build-tools dependency

* chore(ci) unpin the jenkins build from the kong-build-tools branch

chore(nightly) build nightly arm release (#171)

chore(ci) adjust cache settings for xenail nightly builds (#173)
@hutchic hutchic closed this Nov 21, 2019
@hutchic hutchic deleted the ci/daily-builds branch November 21, 2019 16:44
@hutchic hutchic restored the ci/daily-builds branch November 21, 2019 16:45
@hutchic hutchic deleted the ci/daily-builds branch November 21, 2019 16:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.