Skip to content

Commit

Permalink
Merge branch 'master' into watcher
Browse files Browse the repository at this point in the history
  • Loading branch information
kibanamachine authored Jan 25, 2021
2 parents a00c508 + 0c9c2c9 commit 3ea9f8c
Show file tree
Hide file tree
Showing 465 changed files with 9,029 additions and 2,841 deletions.
8 changes: 4 additions & 4 deletions .browserslistrc
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
last 2 Firefox versions
last 2 Chrome versions
last 2 Safari versions
> 0.25%
not ie 11
not op_mini all
not samsung 4
last 2 Edge versions
last 1 ios_saf versions
last 1 and_chr versions
last 1 samsung versions

[dev]
last 1 chrome versions
Expand Down
1 change: 1 addition & 0 deletions .ci/teamcity/default/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ node scripts/build_kibana_platform_plugins \
--scan-dir "$XPACK_DIR/test/plugin_api_integration/plugins" \
--scan-dir "$XPACK_DIR/test/plugin_api_perf/plugins" \
--scan-dir "$XPACK_DIR/test/licensing_plugin/plugins" \
--scan-dir "$XPACK_DIR/test/usage_collection/plugins" \
--verbose
tc_end_block "Build Platform Plugins"

Expand Down
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Delete any items that are not applicable to this PR.
- [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
- [ ] Any UI touched in this PR is usable by keyboard only (learn more about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures (run axe in browser: [FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/), [Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be whitelisted in the [cloud](https://github.com/elastic/cloud) and added to the [docker list](https://github.com/elastic/kibana/blob/c29adfef29e921cc447d2a5ed06ac2047ceab552/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker)
- [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the [cloud](https://github.com/elastic/cloud) and added to the [docker list](https://github.com/elastic/kibana/blob/c29adfef29e921cc447d2a5ed06ac2047ceab552/src/dev/build/tasks/os_packages/docker_generator/resources/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive layout. (You can test this [in your browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

Expand Down
8 changes: 8 additions & 0 deletions .teamcity/src/Common.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@ fun isReportingEnabled(): Boolean {
return ENABLE_REPORTING;
}

// master and 7.x get committed to so often, we only want to run full CI for them hourly
// but for other branches, we can run daily and on merge
fun isHourlyOnlyBranch(): Boolean {
val branch = getProjectBranch()

return branch == "master" || branch.matches("""^[0-9]+\.x$""".toRegex())
}

fun makeSafeId(id: String): String {
return id.replace(Regex("[^a-zA-Z0-9_]"), "_")
}
37 changes: 37 additions & 0 deletions .teamcity/src/builds/DailyCi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package builds

import addSlackNotifications
import areTriggersEnabled
import dependsOn
import getProjectBranch
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.FailureAction
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.schedule

object DailyCi : BuildType({
id("Daily_CI")
name = "Daily CI"
description = "Runs everything in CI, daily"
type = Type.COMPOSITE
paused = !areTriggersEnabled()

triggers {
schedule {
schedulingPolicy = cron {
hours = "0"
minutes = "0"
}
branchFilter = "refs/heads/${getProjectBranch()}"
triggerBuild = always()
withPendingChangesOnly = false
}
}

dependsOn(
FullCi
) {
onDependencyCancel = FailureAction.ADD_PROBLEM
}

addSlackNotifications()
})
34 changes: 34 additions & 0 deletions .teamcity/src/builds/OnMergeCi.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package builds

import addSlackNotifications
import areTriggersEnabled
import dependsOn
import getProjectBranch
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType
import jetbrains.buildServer.configs.kotlin.v2019_2.FailureAction
import jetbrains.buildServer.configs.kotlin.v2019_2.triggers.vcs

object OnMergeCi : BuildType({
id("OnMerge_CI")
name = "On Merge CI"
description = "Runs everything in CI, on each commit"
type = Type.COMPOSITE
paused = !areTriggersEnabled()

maxRunningBuilds = 1

triggers {
vcs {
perCheckinTriggering = false
branchFilter = "refs/heads/${getProjectBranch()}"
}
}

dependsOn(
FullCi
) {
onDependencyCancel = FailureAction.ADD_PROBLEM
}

addSlackNotifications()
})
4 changes: 4 additions & 0 deletions .teamcity/src/builds/default/DefaultFunctionalBase.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package builds.default

import StandardAgents
import addTestSettings
import co.elastic.teamcity.common.requireAgent
import jetbrains.buildServer.configs.kotlin.v2019_2.BuildType

open class DefaultFunctionalBase(init: BuildType.() -> Unit = {}) : BuildType({
params {
param("env.KBN_NP_PLUGINS_BUILT", "true")
}

requireAgent(StandardAgents["4"]!!)

dependencies {
defaultBuildWithPlugins()
}
Expand Down
12 changes: 11 additions & 1 deletion .teamcity/src/projects/Kibana.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import builds.oss.*
import builds.test.*
import CloudProfile
import co.elastic.teamcity.common.googleCloudProfile
import isHourlyOnlyBranch
import jetbrains.buildServer.configs.kotlin.v2019_2.*
import jetbrains.buildServer.configs.kotlin.v2019_2.projectFeatures.slackConnection
import templates.KibanaTemplate
Expand Down Expand Up @@ -136,7 +137,16 @@ fun Kibana(config: KibanaConfiguration = KibanaConfiguration()) : Project {

buildType(FullCi)
buildType(BaselineCi)
buildType(HourlyCi)

// master and 7.x get committed to so often, we only want to run full CI for them hourly
// but for other branches, we can run daily and on merge
if (isHourlyOnlyBranch()) {
buildType(HourlyCi)
} else {
buildType(DailyCi)
buildType(OnMergeCi)
}

buildType(PullRequestCi)
}

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dev_docs/assets/platform_plugin_cycle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 3ea9f8c

Please sign in to comment.