Remove matrix build support (#54202)

This commit is contained in:
Brian Seeders 2020-01-27 17:10:34 -05:00 committed by GitHub
parent 551e4dc472
commit 99f224097c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 94 additions and 288 deletions

View file

@ -16,14 +16,14 @@ stage("Kibana Pipeline") { // This stage is just here to help the BlueOcean UI a
withEnv([
'NODE_ENV=test' // Needed for jest tests only
]) {
kibanaPipeline.legacyJobRunner('kibana-intake')()
kibanaPipeline.intakeWorker('kibana-intake', './test/scripts/jenkins_unit.sh')()
}
},
'x-pack-intake-agent': {
withEnv([
'NODE_ENV=test' // Needed for jest tests only
]) {
kibanaPipeline.legacyJobRunner('x-pack-intake')()
kibanaPipeline.intakeWorker('x-pack-intake', './test/scripts/jenkins_xpack.sh')()
}
},
'kibana-oss-agent': kibanaPipeline.withWorkers('kibana-oss-tests', { kibanaPipeline.buildOss() }, [

View file

@ -26,8 +26,8 @@ timeout(time: 120, unit: 'MINUTES') {
withEnv(["ES_SNAPSHOT_MANIFEST=${SNAPSHOT_MANIFEST}"]) {
parallel([
// TODO we just need to run integration tests from intake?
'kibana-intake-agent': kibanaPipeline.legacyJobRunner('kibana-intake'),
'x-pack-intake-agent': kibanaPipeline.legacyJobRunner('x-pack-intake'),
'kibana-intake-agent': kibanaPipeline.intakeWorker('kibana-intake', './test/scripts/jenkins_unit.sh'),
'x-pack-intake-agent': kibanaPipeline.intakeWorker('x-pack-intake', './test/scripts/jenkins_xpack.sh'),
'kibana-oss-agent': kibanaPipeline.withWorkers('kibana-oss-tests', { kibanaPipeline.buildOss() }, [
'oss-ciGroup1': kibanaPipeline.getOssCiGroupWorker(1),
'oss-ciGroup2': kibanaPipeline.getOssCiGroupWorker(2),

View file

@ -1,3 +1,5 @@
# This file is needed by functionalTests:ensureAllTestsInCiGroup for the list of ciGroups. That must be changed before this file can be removed
JOB:
- kibana-intake
- x-pack-intake

View file

@ -1,50 +0,0 @@
#!/usr/bin/env bash
set -e
# move to Kibana root
cd "$(dirname "$0")/.."
source src/dev/ci_setup/load_env_keys.sh
source src/dev/ci_setup/extract_bootstrap_cache.sh
source src/dev/ci_setup/setup.sh
source src/dev/ci_setup/checkout_sibling_es.sh
case "$JOB" in
kibana-intake)
./test/scripts/jenkins_unit.sh
;;
kibana-ciGroup*)
export CI_GROUP="${JOB##kibana-ciGroup}"
./test/scripts/jenkins_ci_group.sh
;;
kibana-visualRegression*)
./test/scripts/jenkins_visual_regression.sh
;;
kibana-accessibility*)
./test/scripts/jenkins_accessibility.sh
;;
kibana-firefoxSmoke*)
./test/scripts/jenkins_firefox_smoke.sh
;;
x-pack-intake)
./test/scripts/jenkins_xpack.sh
;;
x-pack-ciGroup*)
export CI_GROUP="${JOB##x-pack-ciGroup}"
./test/scripts/jenkins_xpack_ci_group.sh
;;
x-pack-visualRegression*)
./test/scripts/jenkins_xpack_visual_regression.sh
;;
x-pack-accessibility*)
./test/scripts/jenkins_xpack_accessibility.sh
;;
x-pack-firefoxSmoke*)
./test/scripts/jenkins_xpack_firefox_smoke.sh
;;
*)
echo "JOB '$JOB' is not implemented."
exit 1
;;
esac

4
Jenkinsfile vendored
View file

@ -11,8 +11,8 @@ stage("Kibana Pipeline") { // This stage is just here to help the BlueOcean UI a
catchError {
retryable.enable()
parallel([
'kibana-intake-agent': kibanaPipeline.legacyJobRunner('kibana-intake'),
'x-pack-intake-agent': kibanaPipeline.legacyJobRunner('x-pack-intake'),
'kibana-intake-agent': kibanaPipeline.intakeWorker('kibana-intake', './test/scripts/jenkins_unit.sh'),
'x-pack-intake-agent': kibanaPipeline.intakeWorker('x-pack-intake', './test/scripts/jenkins_xpack.sh'),
'kibana-oss-agent': kibanaPipeline.withWorkers('kibana-oss-tests', { kibanaPipeline.buildOss() }, [
'oss-firefoxSmoke': kibanaPipeline.getPostBuildWorker('firefoxSmoke', {
retryable('kibana-firefoxSmoke') {

View file

@ -1,23 +1,6 @@
#!/usr/bin/env bash
set -e
if [[ -n "$IS_PIPELINE_JOB" ]] ; then
source src/dev/ci_setup/setup_env.sh
fi
export TEST_BROWSER_HEADLESS=1
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
yarn run grunt functionalTests:ensureAllTestsInCiGroup;
node scripts/build --debug --oss;
else
installDir="$(realpath $PARENT_DIR/kibana/build/oss/kibana-*-SNAPSHOT-linux-x86_64)"
destDir=${installDir}-${CI_WORKER_NUMBER}
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
source test/scripts/jenkins_test_setup_oss.sh
checks-reporter-with-killswitch "Kibana accessibility tests" \
node scripts/functional_tests \

View file

@ -1,19 +1,8 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]] ; then
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
yarn run grunt functionalTests:ensureAllTestsInCiGroup;
node scripts/build --debug --oss;
else
installDir="$(realpath $PARENT_DIR/kibana/build/oss/kibana-*-SNAPSHOT-linux-x86_64)"
destDir=${installDir}-${CI_WORKER_NUMBER}
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
source test/scripts/jenkins_test_setup_oss.sh
if [[ -z "$CODE_COVERAGE" ]]; then
checks-reporter-with-killswitch "Functional tests / Group ${CI_GROUP}" yarn run grunt "run:functionalTests_ciGroup${CI_GROUP}";
if [ "$CI_GROUP" == "1" ]; then
@ -24,8 +13,6 @@ if [[ -z "$CODE_COVERAGE" ]] ; then
fi
else
echo " -> Running Functional tests with code coverage"
export NODE_OPTIONS=--max_old_space_size=8192
yarn run grunt "run:functionalTests_ciGroup${CI_GROUP}";
fi

View file

@ -1,22 +1,6 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
node scripts/build --debug --oss;
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-oss-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
else
installDir="$(realpath $PARENT_DIR/kibana/build/oss/kibana-*-SNAPSHOT-linux-x86_64)"
destDir=${installDir}-${CI_WORKER_NUMBER}
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
export TEST_BROWSER_HEADLESS=1
source test/scripts/jenkins_test_setup_oss.sh
checks-reporter-with-killswitch "Firefox smoke test" \
node scripts/functional_tests \

View file

@ -1,11 +1,9 @@
#!/usr/bin/env bash
set -e
function post_work() {
set +e
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
node "$KIBANA_DIR/scripts/report_failed_tests"
fi
if [[ -z "$REMOVE_KIBANA_INSTALL_DIR" && -z "$KIBANA_INSTALL_DIR" && -d "$KIBANA_INSTALL_DIR" ]]; then
rm -rf "$REMOVE_KIBANA_INSTALL_DIR"
fi
@ -15,6 +13,4 @@ trap 'post_work' EXIT
export TEST_BROWSER_HEADLESS=1
if [[ -n "$IS_PIPELINE_JOB" ]] ; then
source src/dev/ci_setup/setup_env.sh
fi
source src/dev/ci_setup/setup_env.sh

View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]] ; then
installDir="$(realpath $PARENT_DIR/kibana/build/oss/kibana-*-SNAPSHOT-linux-x86_64)"
destDir=${installDir}-${CI_WORKER_NUMBER}
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi

View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]]; then
installDir="$PARENT_DIR/install/kibana"
destDir="${installDir}-${CI_WORKER_NUMBER}"
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
cd "$XPACK_DIR"
fi

View file

@ -1,8 +1,6 @@
#!/usr/bin/env bash
set -e
export TEST_BROWSER_HEADLESS=1
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]] ; then
"$(FORCE_COLOR=0 yarn bin)/grunt" jenkins:unit --dev;

View file

@ -1,22 +1,8 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
source test/scripts/jenkins_test_setup_xpack.sh
source "$KIBANA_DIR/src/dev/ci_setup/setup_percy.sh"
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
node scripts/build --debug --oss;
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-oss-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
else
installDir="$(realpath $PARENT_DIR/kibana/build/oss/kibana-*-SNAPSHOT-linux-x86_64)"
destDir=${installDir}-${CI_WORKER_NUMBER}
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
checks-reporter-with-killswitch "Kibana visual regression tests" \
yarn run percy exec -t 500 \
node scripts/functional_tests \

View file

@ -1,8 +1,6 @@
#!/usr/bin/env bash
set -e
export TEST_BROWSER_HEADLESS=1
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]] ; then
echo " -> Running mocha tests"
@ -10,26 +8,26 @@ if [[ -z "$CODE_COVERAGE" ]] ; then
checks-reporter-with-killswitch "X-Pack Karma Tests" yarn test:browser
echo ""
echo ""
echo " -> Running jest tests"
cd "$XPACK_DIR"
checks-reporter-with-killswitch "X-Pack Jest" node scripts/jest --ci --verbose
echo ""
echo ""
echo " -> Running SIEM cyclic dependency test"
cd "$XPACK_DIR"
checks-reporter-with-killswitch "X-Pack SIEM cyclic dependency test" node legacy/plugins/siem/scripts/check_circular_deps
echo ""
echo ""
# FAILING: https://github.com/elastic/kibana/issues/44250
# echo " -> Running jest contracts tests"
# cd "$XPACK_DIR"
# SLAPSHOT_ONLINE=true CONTRACT_ONLINE=true node scripts/jest_contract.js --ci --verbose
# echo ""
# echo ""
# echo " -> Running jest integration tests"
# cd "$XPACK_DIR"
# node scripts/jest_integration --ci --verbose
@ -48,4 +46,4 @@ else
../target/kibana-coverage/jest/xpack-coverage-final.json
echo ""
echo ""
fi
fi

View file

@ -1,32 +1,6 @@
#!/usr/bin/env bash
set -e
if [[ -n "$IS_PIPELINE_JOB" ]] ; then
source src/dev/ci_setup/setup_env.sh
fi
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
echo " -> building and extracting default Kibana distributable for use in functional tests"
node scripts/build --debug --no-oss
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
export KIBANA_INSTALL_DIR="$installDir"
else
installDir="$PARENT_DIR/install/kibana"
destDir="${installDir}-${CI_WORKER_NUMBER}"
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
export TEST_BROWSER_HEADLESS=1
cd "$XPACK_DIR"
source test/scripts/jenkins_test_setup_xpack.sh
checks-reporter-with-killswitch "X-Pack accessibility tests" \
node scripts/functional_tests \

View file

@ -1,47 +1,9 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$CODE_COVERAGE" ]] ; then
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
echo " -> Ensuring all functional tests are in a ciGroup"
cd "$XPACK_DIR"
node scripts/functional_tests --assert-none-excluded \
--include-tag ciGroup1 \
--include-tag ciGroup2 \
--include-tag ciGroup3 \
--include-tag ciGroup4 \
--include-tag ciGroup5 \
--include-tag ciGroup6 \
--include-tag ciGroup7 \
--include-tag ciGroup8 \
--include-tag ciGroup9 \
--include-tag ciGroup10
fi
cd "$KIBANA_DIR"
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
echo " -> building and extracting default Kibana distributable for use in functional tests"
node scripts/build --debug --no-oss
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
export KIBANA_INSTALL_DIR="$installDir"
else
installDir="$PARENT_DIR/install/kibana"
destDir="${installDir}-${CI_WORKER_NUMBER}"
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
source test/scripts/jenkins_test_setup_xpack.sh
if [[ -z "$CODE_COVERAGE" ]]; then
echo " -> Running functional and api tests"
cd "$XPACK_DIR"
checks-reporter-with-killswitch "X-Pack Chrome Functional tests / Group ${CI_GROUP}" \
node scripts/functional_tests \
@ -53,9 +15,6 @@ if [[ -z "$CODE_COVERAGE" ]] ; then
echo ""
else
echo " -> Running X-Pack functional tests with code coverage"
cd "$XPACK_DIR"
export NODE_OPTIONS=--max_old_space_size=8192
node scripts/functional_tests --debug --include-tag "ciGroup$CI_GROUP"
fi

View file

@ -1,23 +1,6 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
node scripts/build --debug --no-oss;
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
export KIBANA_INSTALL_DIR="$installDir"
else
installDir="$PARENT_DIR/install/kibana"
destDir="${installDir}-${CI_WORKER_NUMBER}"
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
cd "$XPACK_DIR"
source test/scripts/jenkins_test_setup_xpack.sh
checks-reporter-with-killswitch "X-Pack firefox smoke test" \
node scripts/functional_tests \

View file

@ -1,25 +1,8 @@
#!/usr/bin/env bash
source test/scripts/jenkins_test_setup.sh
source test/scripts/jenkins_test_setup_xpack.sh
source "$KIBANA_DIR/src/dev/ci_setup/setup_percy.sh"
if [[ -z "$IS_PIPELINE_JOB" ]] ; then
node scripts/build --debug --no-oss;
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
installDir="$PARENT_DIR/install/kibana"
mkdir -p "$installDir"
tar -xzf "$linuxBuild" -C "$installDir" --strip=1
export KIBANA_INSTALL_DIR="$installDir"
else
installDir="$PARENT_DIR/install/kibana"
destDir="${installDir}-${CI_WORKER_NUMBER}"
cp -R "$installDir" "$destDir"
export KIBANA_INSTALL_DIR="$destDir"
fi
cd "$XPACK_DIR"
checks-reporter-with-killswitch "X-Pack visual regression tests" \
yarn run percy exec -t 500 \
node scripts/functional_tests \

View file

@ -2,7 +2,7 @@ def withWorkers(machineName, preWorkerClosure = {}, workerClosures = [:]) {
return {
jobRunner('tests-xl', true) {
withGcsArtifactUpload(machineName, {
try {
withPostBuildReporting {
doSetup()
preWorkerClosure()
@ -26,24 +26,53 @@ def withWorkers(machineName, preWorkerClosure = {}, workerClosures = [:]) {
}
parallel(workers)
} finally {
catchError {
runErrorReporter()
}
catchError {
runbld.junit()
}
catchError {
publishJunit()
}
}
})
}
}
}
def withWorker(machineName, label, Closure closure) {
return {
jobRunner(label, false) {
withGcsArtifactUpload(machineName) {
withPostBuildReporting {
doSetup()
closure()
}
}
}
}
}
def intakeWorker(jobName, String script) {
return withWorker(jobName, 'linux && immutable') {
withEnv([
"JOB=${jobName}",
]) {
runbld(script, "Execute ${jobName}")
}
}
}
def withPostBuildReporting(Closure closure) {
try {
closure()
} finally {
catchError {
runErrorReporter()
}
catchError {
runbld.junit()
}
catchError {
publishJunit()
}
}
}
def getPostBuildWorker(name, closure) {
return { workerNumber ->
def kibanaPort = "61${workerNumber}1"
@ -90,34 +119,6 @@ def getXpackCiGroupWorker(ciGroup) {
})
}
def legacyJobRunner(name) {
return {
parallel([
"${name}": {
withEnv([
"JOB=${name}",
]) {
jobRunner('linux && immutable', false) {
withGcsArtifactUpload(name, {
try {
runbld('.ci/run.sh', "Execute ${name}", true)
} finally {
catchError {
runErrorReporter()
}
catchError {
publishJunit()
}
}
})
}
}
}
])
}
}
def jobRunner(label, useRamDisk, closure) {
node(label) {
agentInfo.print()
@ -168,8 +169,6 @@ def jobRunner(label, useRamDisk, closure) {
}
}
// TODO what should happen if GCS, Junit, or email publishing fails? Unstable build? Failed build?
def uploadGcsArtifact(uploadPrefix, pattern) {
googleStorageUpload(
credentialsId: 'kibana-ci-gcs-plugin',