Skip to content

Commit 760d29f

Browse files
committed
Merge branch 'feature/console-saved-objects' of github.com:jloleysens/kibana into feature/console-saved-objects
* 'feature/console-saved-objects' of github.com:jloleysens/kibana: (86 commits) [Uptime] Added date range filter into expanded list query (elastic#52609) [SIEM] Add react/display-name eslint rule (elastic#53107) [SIEM] Enable eslint prefer-template rule (elastic#53983) Elasticsearch snapshots automation (elastic#53706) [SIEM] Enable eslint react/no-children-prop (elastic#53985) [DOCS][Reporting] Adds info about using a custom reporting index (elastic#54052) Changing background color to align with EUI color (elastic#54060) Fix linting issues (elastic#54068) NP Migration: Move doc views registry and existing doc views into discover plugin (elastic#53465) [ML] DF Analytics job creation: Add 'excludes' input field to form (elastic#53856) EMT-issue-65: add endpoint list api (elastic#53861) [SIEM] Fix doubled drag handles in Timeline (elastic#52679) Functional tests: refactor visualize_page (elastic#53845) [Dashboard] Redesign empty screen in readonly mode (elastic#54073) [ML] Support search for partitions on Single Metric Viewer (elastic#53879) update apm index pattern (elastic#54095) Add data ui for envoyproxy Metricbeat Module (elastic#53476) [ML] persist the brush when expanded to full width (elastic#54020) Skip failing test (elastic#54100) [APM] Show errors on the timeline instead of under the transaction (elastic#53756) ...
2 parents fbf8832 + 792771e commit 760d29f

File tree

1,177 files changed

+98330
-53198
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,177 files changed

+98330
-53198
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
#!/bin/groovy
2+
3+
// This job effectively has two SCM configurations:
4+
// one for kibana, used to check out this Jenkinsfile (which means it's the job's main SCM configuration), as well as kick-off the downstream verification job
5+
// one for elasticsearch, used to check out the elasticsearch source before building it
6+
7+
// There are two parameters that drive which branch is checked out for each of these, but they will typically be the same
8+
// 'branch_specifier' is for kibana / the job itself
9+
// ES_BRANCH is for elasticsearch
10+
11+
library 'kibana-pipeline-library'
12+
kibanaLibrary.load()
13+
14+
def ES_BRANCH = params.ES_BRANCH
15+
16+
if (!ES_BRANCH) {
17+
error "Parameter 'ES_BRANCH' must be specified."
18+
}
19+
20+
currentBuild.displayName += " - ${ES_BRANCH}"
21+
currentBuild.description = "ES: ${ES_BRANCH}<br />Kibana: ${params.branch_specifier}"
22+
23+
def PROMOTE_WITHOUT_VERIFY = !!params.PROMOTE_WITHOUT_VERIFICATION
24+
25+
timeout(time: 120, unit: 'MINUTES') {
26+
timestamps {
27+
ansiColor('xterm') {
28+
node('linux && immutable') {
29+
catchError {
30+
def VERSION
31+
def SNAPSHOT_ID
32+
def DESTINATION
33+
34+
def scmVars = checkoutEs(ES_BRANCH)
35+
def GIT_COMMIT = scmVars.GIT_COMMIT
36+
def GIT_COMMIT_SHORT = sh(script: "git rev-parse --short ${GIT_COMMIT}", returnStdout: true).trim()
37+
38+
buildArchives('to-archive')
39+
40+
dir('to-archive') {
41+
def now = new Date()
42+
def date = now.format("yyyyMMdd-HHmmss")
43+
44+
def filesRaw = sh(script: "ls -1", returnStdout: true).trim()
45+
def files = filesRaw
46+
.split("\n")
47+
.collect { filename ->
48+
// Filename examples
49+
// elasticsearch-oss-8.0.0-SNAPSHOT-linux-x86_64.tar.gz
50+
// elasticsearch-8.0.0-SNAPSHOT-linux-x86_64.tar.gz
51+
def parts = filename.replace("elasticsearch-oss", "oss").split("-")
52+
53+
VERSION = VERSION ?: parts[1]
54+
SNAPSHOT_ID = SNAPSHOT_ID ?: "${date}_${GIT_COMMIT_SHORT}"
55+
DESTINATION = DESTINATION ?: "${VERSION}/archives/${SNAPSHOT_ID}"
56+
57+
return [
58+
filename: filename,
59+
checksum: filename + '.sha512',
60+
url: "https://storage.googleapis.com/kibana-ci-es-snapshots-daily/${DESTINATION}/${filename}".toString(),
61+
version: parts[1],
62+
platform: parts[3],
63+
architecture: parts[4].split('\\.')[0],
64+
license: parts[0] == 'oss' ? 'oss' : 'default',
65+
]
66+
}
67+
68+
sh 'find * -exec bash -c "shasum -a 512 {} > {}.sha512" \\;'
69+
70+
def manifest = [
71+
bucket: "kibana-ci-es-snapshots-daily/${DESTINATION}".toString(),
72+
branch: ES_BRANCH,
73+
sha: GIT_COMMIT,
74+
sha_short: GIT_COMMIT_SHORT,
75+
version: VERSION,
76+
generated: now.format("yyyy-MM-dd'T'HH:mm:ss'Z'", TimeZone.getTimeZone("UTC")),
77+
archives: files,
78+
]
79+
def manifestJson = toJSON(manifest).toString()
80+
writeFile file: 'manifest.json', text: manifestJson
81+
82+
upload(DESTINATION, '*.*')
83+
84+
sh "cp manifest.json manifest-latest.json"
85+
upload(VERSION, 'manifest-latest.json')
86+
}
87+
88+
if (PROMOTE_WITHOUT_VERIFY) {
89+
esSnapshots.promote(VERSION, SNAPSHOT_ID)
90+
91+
emailext(
92+
to: 'build-kibana@elastic.co',
93+
subject: "ES snapshot promoted without verification: ${params.ES_BRANCH}",
94+
body: '${SCRIPT,template="groovy-html.template"}',
95+
mimeType: 'text/html',
96+
)
97+
} else {
98+
build(
99+
propagate: false,
100+
wait: false,
101+
job: 'elasticsearch+snapshots+verify',
102+
parameters: [
103+
string(name: 'branch_specifier', value: branch_specifier),
104+
string(name: 'SNAPSHOT_VERSION', value: VERSION),
105+
string(name: 'SNAPSHOT_ID', value: SNAPSHOT_ID),
106+
]
107+
)
108+
}
109+
}
110+
111+
kibanaPipeline.sendMail()
112+
}
113+
}
114+
}
115+
}
116+
117+
def checkoutEs(branch) {
118+
retryWithDelay(8, 15) {
119+
return checkout([
120+
$class: 'GitSCM',
121+
branches: [[name: branch]],
122+
doGenerateSubmoduleConfigurations: false,
123+
extensions: [],
124+
submoduleCfg: [],
125+
userRemoteConfigs: [[
126+
credentialsId: 'f6c7695a-671e-4f4f-a331-acdce44ff9ba',
127+
url: 'git@github.com:elastic/elasticsearch',
128+
]],
129+
])
130+
}
131+
}
132+
133+
def upload(destination, pattern) {
134+
return googleStorageUpload(
135+
credentialsId: 'kibana-ci-gcs-plugin',
136+
bucket: "gs://kibana-ci-es-snapshots-daily/${destination}",
137+
pattern: pattern,
138+
sharedPublicly: false,
139+
showInline: false,
140+
)
141+
}
142+
143+
def buildArchives(destination) {
144+
def props = readProperties file: '.ci/java-versions.properties'
145+
withEnv([
146+
// Select the correct JDK for this branch
147+
"PATH=/var/lib/jenkins/.java/${props.ES_BUILD_JAVA}/bin:${env.PATH}",
148+
149+
// These Jenkins env vars trigger some automation in the elasticsearch repo that we don't want
150+
"BUILD_NUMBER=",
151+
"JENKINS_URL=",
152+
"BUILD_URL=",
153+
"JOB_NAME=",
154+
"NODE_NAME=",
155+
]) {
156+
sh """
157+
./gradlew -p distribution/archives assemble --parallel
158+
mkdir -p ${destination}
159+
find distribution/archives -type f \\( -name 'elasticsearch-*-*-*-*.tar.gz' -o -name 'elasticsearch-*-*-*-*.zip' \\) -not -path *no-jdk* -exec cp {} ${destination} \\;
160+
"""
161+
}
162+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/groovy
2+
3+
if (!params.branches_yaml) {
4+
error "'branches_yaml' parameter must be specified"
5+
}
6+
7+
def branches = readYaml text: params.branches_yaml
8+
9+
branches.each { branch ->
10+
build(
11+
propagate: false,
12+
wait: false,
13+
job: 'elasticsearch+snapshots+build',
14+
parameters: [
15+
string(name: 'branch_specifier', value: branch),
16+
string(name: 'ES_BRANCH', value: branch),
17+
]
18+
)
19+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/bin/groovy
2+
3+
library 'kibana-pipeline-library'
4+
kibanaLibrary.load()
5+
6+
def SNAPSHOT_VERSION = params.SNAPSHOT_VERSION
7+
def SNAPSHOT_ID = params.SNAPSHOT_ID
8+
9+
if (!SNAPSHOT_VERSION) {
10+
error "Parameter SNAPSHOT_VERSION must be specified"
11+
}
12+
13+
if (!SNAPSHOT_ID) {
14+
error "Parameter SNAPSHOT_ID must be specified"
15+
}
16+
17+
currentBuild.displayName += " - ${SNAPSHOT_VERSION}"
18+
currentBuild.description = "ES: ${SNAPSHOT_VERSION}<br />Kibana: ${params.branch_specifier}"
19+
20+
def SNAPSHOT_MANIFEST = "https://storage.googleapis.com/kibana-ci-es-snapshots-daily/${SNAPSHOT_VERSION}/archives/${SNAPSHOT_ID}/manifest.json"
21+
22+
timeout(time: 120, unit: 'MINUTES') {
23+
timestamps {
24+
ansiColor('xterm') {
25+
catchError {
26+
withEnv(["ES_SNAPSHOT_MANIFEST=${SNAPSHOT_MANIFEST}"]) {
27+
parallel([
28+
// TODO we just need to run integration tests from intake?
29+
'kibana-intake-agent': kibanaPipeline.legacyJobRunner('kibana-intake'),
30+
'x-pack-intake-agent': kibanaPipeline.legacyJobRunner('x-pack-intake'),
31+
'kibana-oss-agent': kibanaPipeline.withWorkers('kibana-oss-tests', { kibanaPipeline.buildOss() }, [
32+
'oss-ciGroup1': kibanaPipeline.getOssCiGroupWorker(1),
33+
'oss-ciGroup2': kibanaPipeline.getOssCiGroupWorker(2),
34+
'oss-ciGroup3': kibanaPipeline.getOssCiGroupWorker(3),
35+
'oss-ciGroup4': kibanaPipeline.getOssCiGroupWorker(4),
36+
'oss-ciGroup5': kibanaPipeline.getOssCiGroupWorker(5),
37+
'oss-ciGroup6': kibanaPipeline.getOssCiGroupWorker(6),
38+
'oss-ciGroup7': kibanaPipeline.getOssCiGroupWorker(7),
39+
'oss-ciGroup8': kibanaPipeline.getOssCiGroupWorker(8),
40+
'oss-ciGroup9': kibanaPipeline.getOssCiGroupWorker(9),
41+
'oss-ciGroup10': kibanaPipeline.getOssCiGroupWorker(10),
42+
'oss-ciGroup11': kibanaPipeline.getOssCiGroupWorker(11),
43+
'oss-ciGroup12': kibanaPipeline.getOssCiGroupWorker(12),
44+
]),
45+
'kibana-xpack-agent': kibanaPipeline.withWorkers('kibana-xpack-tests', { kibanaPipeline.buildXpack() }, [
46+
'xpack-ciGroup1': kibanaPipeline.getXpackCiGroupWorker(1),
47+
'xpack-ciGroup2': kibanaPipeline.getXpackCiGroupWorker(2),
48+
'xpack-ciGroup3': kibanaPipeline.getXpackCiGroupWorker(3),
49+
'xpack-ciGroup4': kibanaPipeline.getXpackCiGroupWorker(4),
50+
'xpack-ciGroup5': kibanaPipeline.getXpackCiGroupWorker(5),
51+
'xpack-ciGroup6': kibanaPipeline.getXpackCiGroupWorker(6),
52+
'xpack-ciGroup7': kibanaPipeline.getXpackCiGroupWorker(7),
53+
'xpack-ciGroup8': kibanaPipeline.getXpackCiGroupWorker(8),
54+
'xpack-ciGroup9': kibanaPipeline.getXpackCiGroupWorker(9),
55+
'xpack-ciGroup10': kibanaPipeline.getXpackCiGroupWorker(10),
56+
]),
57+
])
58+
}
59+
60+
promoteSnapshot(SNAPSHOT_VERSION, SNAPSHOT_ID)
61+
}
62+
63+
kibanaPipeline.sendMail()
64+
}
65+
}
66+
}
67+
68+
def promoteSnapshot(snapshotVersion, snapshotId) {
69+
node('linux && immutable') {
70+
esSnapshots.promote(snapshotVersion, snapshotId)
71+
}
72+
}

.eslintrc.js

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -177,25 +177,12 @@ module.exports = {
177177
'react-hooks/exhaustive-deps': 'off',
178178
},
179179
},
180-
{
181-
files: ['x-pack/legacy/plugins/monitoring/**/*.{js,ts,tsx}'],
182-
rules: {
183-
'jsx-a11y/click-events-have-key-events': 'off',
184-
},
185-
},
186180
{
187181
files: ['x-pack/legacy/plugins/snapshot_restore/**/*.{js,ts,tsx}'],
188182
rules: {
189183
'react-hooks/exhaustive-deps': 'off',
190184
},
191185
},
192-
{
193-
files: ['x-pack/legacy/plugins/uptime/**/*.{js,ts,tsx}'],
194-
rules: {
195-
'react-hooks/exhaustive-deps': 'off',
196-
'react-hooks/rules-of-hooks': 'off',
197-
},
198-
},
199186

200187
/**
201188
* Files that require Apache 2.0 headers, settings
@@ -736,30 +723,27 @@ module.exports = {
736723
'no-unreachable': 'error',
737724
'no-unsafe-finally': 'error',
738725
'no-useless-call': 'error',
739-
// This will be turned on after bug fixes are mostly complete
740-
// 'no-useless-catch': 'warn',
726+
'no-useless-catch': 'error',
741727
'no-useless-concat': 'error',
742728
'no-useless-computed-key': 'error',
743729
// This will be turned on after bug fixes are mostly complete
744730
// 'no-useless-escape': 'warn',
745731
'no-useless-rename': 'error',
746-
// This will be turned on after bug fixes are mostly complete
747-
// 'no-useless-return': 'warn',
732+
'no-useless-return': 'error',
748733
// This will be turned on after bug fixers are mostly complete
749734
// 'no-void': 'warn',
750735
'one-var-declaration-per-line': 'error',
751736
'prefer-object-spread': 'error',
752737
'prefer-promise-reject-errors': 'error',
753738
'prefer-rest-params': 'error',
754739
'prefer-spread': 'error',
755-
// This style will be turned on after most bugs are fixed
756-
// 'prefer-template': 'warn',
740+
'prefer-template': 'error',
757741
'react/boolean-prop-naming': 'error',
758742
'react/button-has-type': 'error',
743+
'react/display-name': 'error',
759744
'react/forbid-dom-props': 'error',
760745
'react/no-access-state-in-setstate': 'error',
761-
// This style will be turned on after most bugs are fixed
762-
// 'react/no-children-prop': 'warn',
746+
'react/no-children-prop': 'error',
763747
'react/no-danger-with-children': 'error',
764748
'react/no-deprecated': 'error',
765749
'react/no-did-mount-set-state': 'error',
@@ -821,21 +805,6 @@ module.exports = {
821805
},
822806
},
823807

824-
/**
825-
* Monitoring overrides
826-
*/
827-
{
828-
files: ['x-pack/legacy/plugins/monitoring/**/*.js'],
829-
rules: {
830-
'no-unused-vars': ['error', { args: 'all', argsIgnorePattern: '^_' }],
831-
'no-else-return': 'error',
832-
},
833-
},
834-
{
835-
files: ['x-pack/legacy/plugins/monitoring/public/**/*.js'],
836-
env: { browser: true },
837-
},
838-
839808
/**
840809
* Canvas overrides
841810
*/

NOTICE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Kibana source code with Kibana X-Pack source code
2-
Copyright 2012-2019 Elasticsearch B.V.
2+
Copyright 2012-2020 Elasticsearch B.V.
33

44
---
55
Pretty handling of logarithmic axes.

0 commit comments

Comments
 (0)