mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
[Buildkite] Hourly CI / tracked branch pipeline (#111785)
This commit is contained in:
parent
0eae2278f6
commit
be51f0a574
64 changed files with 1076 additions and 78 deletions
3
.buildkite/hooks/post-command
Executable file
3
.buildkite/hooks/post-command
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
.buildkite/scripts/lifecycle/post_command.sh
|
|
@ -28,7 +28,6 @@ steps:
|
|||
parallelism: 13
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
artifact_paths: target/junit/**/*.xml
|
||||
depends_on: build
|
||||
key: default-cigroup
|
||||
retry:
|
||||
|
@ -40,7 +39,6 @@ steps:
|
|||
label: 'Docker CI Group'
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
artifact_paths: target/junit/**/*.xml
|
||||
depends_on: build
|
||||
key: default-cigroup-docker
|
||||
retry:
|
||||
|
@ -50,10 +48,9 @@ steps:
|
|||
|
||||
- command: .buildkite/scripts/steps/functional/oss_cigroup.sh
|
||||
label: 'OSS CI Group'
|
||||
parallelism: 12
|
||||
parallelism: 11
|
||||
agents:
|
||||
queue: ci-group-4d
|
||||
artifact_paths: target/junit/**/*.xml
|
||||
depends_on: build
|
||||
key: oss-cigroup
|
||||
retry:
|
||||
|
@ -65,7 +62,6 @@ steps:
|
|||
label: 'Jest Integration Tests'
|
||||
agents:
|
||||
queue: jest
|
||||
artifact_paths: target/junit/**/*.xml
|
||||
key: jest-integration
|
||||
retry:
|
||||
automatic:
|
||||
|
@ -76,7 +72,6 @@ steps:
|
|||
label: 'API Integration Tests'
|
||||
agents:
|
||||
queue: jest
|
||||
artifact_paths: target/junit/**/*.xml
|
||||
key: api-integration
|
||||
|
||||
- command: .buildkite/scripts/steps/es_snapshots/trigger_promote.sh
|
||||
|
@ -94,6 +89,7 @@ steps:
|
|||
- plugins:
|
||||
- junit-annotate#v1.9.0:
|
||||
artifacts: target/junit/**/*.xml
|
||||
job-uuid-file-pattern: '-bk__(.*).xml'
|
||||
|
||||
- wait: ~
|
||||
continue_on_failure: true
|
||||
|
|
169
.buildkite/pipelines/hourly.yml
Normal file
169
.buildkite/pipelines/hourly.yml
Normal file
|
@ -0,0 +1,169 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/lifecycle/pre_build.sh
|
||||
label: Pre-Build
|
||||
|
||||
- wait
|
||||
|
||||
- command: .buildkite/scripts/steps/build_kibana.sh
|
||||
label: Build Kibana Distribution and Plugins
|
||||
agents:
|
||||
queue: c2-8
|
||||
key: build
|
||||
if: "build.env('KIBANA_BUILD_ID') == null || build.env('KIBANA_BUILD_ID') == ''"
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/xpack_cigroup.sh
|
||||
label: 'Default CI Group'
|
||||
parallelism: 13
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
key: default-cigroup
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: CI_GROUP=Docker .buildkite/scripts/steps/functional/xpack_cigroup.sh
|
||||
label: 'Docker CI Group'
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
key: default-cigroup-docker
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/oss_cigroup.sh
|
||||
label: 'OSS CI Group'
|
||||
parallelism: 11
|
||||
agents:
|
||||
queue: ci-group-4d
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
key: oss-cigroup
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/oss_accessibility.sh
|
||||
label: 'OSS Accessibility Tests'
|
||||
agents:
|
||||
queue: ci-group-4d
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/xpack_accessibility.sh
|
||||
label: 'Default Accessibility Tests'
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/oss_firefox.sh
|
||||
label: 'OSS Firefox Tests'
|
||||
agents:
|
||||
queue: ci-group-4d
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/xpack_firefox.sh
|
||||
label: 'Default Firefox Tests'
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/oss_misc.sh
|
||||
label: 'OSS Misc Functional Tests'
|
||||
agents:
|
||||
queue: ci-group-4d
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/functional/xpack_saved_object_field_metrics.sh
|
||||
label: 'Saved Object Field Metrics'
|
||||
agents:
|
||||
queue: ci-group-6
|
||||
depends_on: build
|
||||
timeout_in_minutes: 120
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/steps/test/jest_integration.sh
|
||||
label: 'Jest Integration Tests'
|
||||
agents:
|
||||
queue: jest
|
||||
timeout_in_minutes: 120
|
||||
key: jest-integration
|
||||
|
||||
- command: .buildkite/scripts/steps/test/api_integration.sh
|
||||
label: 'API Integration Tests'
|
||||
agents:
|
||||
queue: jest
|
||||
timeout_in_minutes: 120
|
||||
key: api-integration
|
||||
|
||||
- command: .buildkite/scripts/steps/test/jest.sh
|
||||
label: 'Jest Tests'
|
||||
agents:
|
||||
queue: c2-16
|
||||
timeout_in_minutes: 120
|
||||
key: jest
|
||||
|
||||
- command: .buildkite/scripts/steps/lint.sh
|
||||
label: 'Linting'
|
||||
agents:
|
||||
queue: n2-2
|
||||
key: linting
|
||||
|
||||
- command: .buildkite/scripts/steps/checks.sh
|
||||
label: 'Checks'
|
||||
agents:
|
||||
queue: c2-4
|
||||
key: checks
|
||||
|
||||
- command: .buildkite/scripts/steps/storybooks/build_and_upload.sh
|
||||
label: 'Build Storybooks'
|
||||
agents:
|
||||
queue: c2-4
|
||||
key: storybooks
|
||||
|
||||
- wait: ~
|
||||
continue_on_failure: true
|
||||
|
||||
- plugins:
|
||||
- junit-annotate#v1.9.0:
|
||||
artifacts: target/junit/**/*.xml
|
||||
job-uuid-file-pattern: '-bk__(.*).xml'
|
||||
|
||||
- wait: ~
|
||||
continue_on_failure: true
|
||||
|
||||
- command: .buildkite/scripts/lifecycle/post_build.sh
|
||||
label: Post-Build
|
|
@ -5,7 +5,7 @@ set -euo pipefail
|
|||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo "--- yarn install and bootstrap"
|
||||
yarn kbn bootstrap
|
||||
retry 2 15 yarn kbn bootstrap
|
||||
|
||||
###
|
||||
### upload ts-refs-cache artifacts as quickly as possible so they are available for download
|
||||
|
|
|
@ -19,13 +19,3 @@ node scripts/build_kibana_platform_plugins \
|
|||
--scan-dir "$XPACK_DIR/test/usage_collection/plugins" \
|
||||
--scan-dir "$XPACK_DIR/test/security_functional/fixtures/common" \
|
||||
--scan-dir "$XPACK_DIR/examples"
|
||||
|
||||
echo "--- Archive built plugins"
|
||||
shopt -s globstar
|
||||
tar -zcf \
|
||||
target/kibana-default-plugins.tar.gz \
|
||||
x-pack/plugins/**/target/public \
|
||||
x-pack/test/**/target/public \
|
||||
examples/**/target/public \
|
||||
x-pack/examples/**/target/public \
|
||||
test/**/target/public
|
||||
|
|
|
@ -11,6 +11,13 @@ PARENT_DIR="$(cd "$KIBANA_DIR/.."; pwd)"
|
|||
export PARENT_DIR
|
||||
export WORKSPACE="${WORKSPACE:-$PARENT_DIR}"
|
||||
|
||||
# A few things, such as Chrome, respect this variable
|
||||
# For many agent types, the workspace is mounted on a local ssd, so will be faster than the default tmp dir location
|
||||
if [[ -d /opt/local-ssd/buildkite ]]; then
|
||||
export TMPDIR="/opt/local-ssd/buildkite/tmp"
|
||||
mkdir -p "$TMPDIR"
|
||||
fi
|
||||
|
||||
KIBANA_PKG_BRANCH="$(jq -r .branch "$KIBANA_DIR/package.json")"
|
||||
export KIBANA_PKG_BRANCH
|
||||
export KIBANA_BASE_BRANCH="$KIBANA_PKG_BRANCH"
|
||||
|
@ -28,11 +35,9 @@ export TEST_BROWSER_HEADLESS=1
|
|||
export ELASTIC_APM_ENVIRONMENT=ci
|
||||
export ELASTIC_APM_TRANSACTION_SAMPLE_RATE=0.1
|
||||
|
||||
CI_REPORTING_ENABLED=false # TODO enable when ready, only controls checks reporter and APM
|
||||
|
||||
if is_pr; then
|
||||
export ELASTIC_APM_ACTIVE=false
|
||||
export CHECKS_REPORTER_ACTIVE="${CI_REPORTING_ENABLED-}"
|
||||
export CHECKS_REPORTER_ACTIVE=true
|
||||
|
||||
# These can be removed once we're not supporting Jenkins and Buildkite at the same time
|
||||
# These are primarily used by github checks reporter and can be configured via /github_checks_api.json
|
||||
|
@ -42,7 +47,7 @@ if is_pr; then
|
|||
|
||||
# set_git_merge_base # TODO for PRs
|
||||
else
|
||||
export ELASTIC_APM_ACTIVE="${CI_REPORTING_ENABLED-}"
|
||||
export ELASTIC_APM_ACTIVE=true
|
||||
export CHECKS_REPORTER_ACTIVE=false
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
KIBANA_BUILDBUDDY_CI_API_KEY=$(vault read -field=value secret/kibana-issues/dev/kibana-buildbuddy-ci-api-key)
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
KIBANA_BUILDBUDDY_CI_API_KEY=$(retry 5 5 vault read -field=value secret/kibana-issues/dev/kibana-buildbuddy-ci-api-key)
|
||||
export KIBANA_BUILDBUDDY_CI_API_KEY
|
||||
|
||||
cp "$KIBANA_DIR/src/dev/ci_setup/.bazelrc-ci" "$HOME/.bazelrc"
|
||||
|
|
|
@ -49,3 +49,28 @@ docker_run() {
|
|||
|
||||
docker run "${args[@]}" "$@"
|
||||
}
|
||||
|
||||
is_test_execution_step() {
|
||||
buildkite-agent meta-data set "${BUILDKITE_JOB_ID}_is_test_execution_step" 'true'
|
||||
}
|
||||
|
||||
retry() {
|
||||
local retries=$1; shift
|
||||
local delay=$1; shift
|
||||
local attempts=1
|
||||
|
||||
until "$@"; do
|
||||
retry_exit_status=$?
|
||||
echo "Exited with $retry_exit_status" >&2
|
||||
if (( retries == "0" )); then
|
||||
return $retry_exit_status
|
||||
elif (( attempts == retries )); then
|
||||
echo "Failed $attempts retries" >&2
|
||||
return $retry_exit_status
|
||||
else
|
||||
echo "Retrying $((retries - attempts)) more times..." >&2
|
||||
attempts=$((attempts + 1))
|
||||
sleep "$delay"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
|
27
.buildkite/scripts/lifecycle/post_command.sh
Executable file
27
.buildkite/scripts/lifecycle/post_command.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
IS_TEST_EXECUTION_STEP="$(buildkite-agent meta-data get "${BUILDKITE_JOB_ID}_is_test_execution_step" --default '')"
|
||||
|
||||
if [[ "$IS_TEST_EXECUTION_STEP" == "true" ]]; then
|
||||
buildkite-agent artifact upload 'target/junit/**/*'
|
||||
buildkite-agent artifact upload 'target/kibana-*'
|
||||
buildkite-agent artifact upload 'target/kibana-coverage/jest/**/*'
|
||||
buildkite-agent artifact upload 'target/kibana-security-solution/**/*.png'
|
||||
buildkite-agent artifact upload 'target/test-metrics/*'
|
||||
buildkite-agent artifact upload 'target/test-suites-ci-plan.json'
|
||||
buildkite-agent artifact upload 'test/**/screenshots/diff/*.png'
|
||||
buildkite-agent artifact upload 'test/**/screenshots/failure/*.png'
|
||||
buildkite-agent artifact upload 'test/**/screenshots/session/*.png'
|
||||
buildkite-agent artifact upload 'test/functional/failure_debug/html/*.html'
|
||||
buildkite-agent artifact upload 'x-pack/test/**/screenshots/diff/*.png'
|
||||
buildkite-agent artifact upload 'x-pack/test/**/screenshots/failure/*.png'
|
||||
buildkite-agent artifact upload 'x-pack/test/**/screenshots/session/*.png'
|
||||
buildkite-agent artifact upload 'x-pack/test/functional/apps/reporting/reports/session/*.pdf'
|
||||
buildkite-agent artifact upload 'x-pack/test/functional/failure_debug/html/*.html'
|
||||
buildkite-agent artifact upload '.es/**/*.hprof'
|
||||
|
||||
# TODO - re-enable when Jenkins is disabled
|
||||
# node scripts/report_failed_tests --build-url="${BUILDKITE_BUILD_URL}#${BUILDKITE_JOB_ID}" 'target/junit/**/*.xml'
|
||||
fi
|
|
@ -2,9 +2,11 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
"$(dirname "${0}")/commit_status_start.sh"
|
||||
|
||||
export CI_STATS_TOKEN="$(vault read -field=api_token secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
export CI_STATS_HOST="$(vault read -field=api_host secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
export CI_STATS_TOKEN="$(retry 5 5 vault read -field=api_token secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
export CI_STATS_HOST="$(retry 5 5 vault read -field=api_host secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
|
||||
node "$(dirname "${0}")/ci_stats_start.js"
|
||||
|
|
|
@ -2,11 +2,17 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
node .buildkite/scripts/lifecycle/print_agent_links.js
|
||||
|
||||
echo '--- Job Environment Setup'
|
||||
|
||||
cd '.buildkite'
|
||||
yarn install
|
||||
cd -
|
||||
|
||||
BUILDKITE_TOKEN="$(vault read -field=buildkite_token_all_jobs secret/kibana-issues/dev/buildkite-ci)"
|
||||
BUILDKITE_TOKEN="$(retry 5 5 vault read -field=buildkite_token_all_jobs secret/kibana-issues/dev/buildkite-ci)"
|
||||
export BUILDKITE_TOKEN
|
||||
|
||||
# Set up a custom ES Snapshot Manifest if one has been specified for this build
|
||||
|
@ -43,10 +49,10 @@ EOF
|
|||
if [[ "$CI_STATS_BUILD_ID" ]]; then
|
||||
echo "CI Stats Build ID: $CI_STATS_BUILD_ID"
|
||||
|
||||
CI_STATS_TOKEN="$(vault read -field=api_token secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
CI_STATS_TOKEN="$(retry 5 5 vault read -field=api_token secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
export CI_STATS_TOKEN
|
||||
|
||||
CI_STATS_HOST="$(vault read -field=api_host secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
CI_STATS_HOST="$(retry 5 5 vault read -field=api_host secret/kibana-issues/dev/kibana_ci_stats)"
|
||||
export CI_STATS_HOST
|
||||
|
||||
KIBANA_CI_STATS_CONFIG=$(jq -n \
|
||||
|
@ -59,14 +65,28 @@ EOF
|
|||
fi
|
||||
}
|
||||
|
||||
GITHUB_TOKEN=$(vault read -field=github_token secret/kibana-issues/dev/kibanamachine)
|
||||
GITHUB_TOKEN=$(retry 5 5 vault read -field=github_token secret/kibana-issues/dev/kibanamachine)
|
||||
export GITHUB_TOKEN
|
||||
|
||||
KIBANA_CI_REPORTER_KEY=$(retry 5 5 vault read -field=value secret/kibana-issues/dev/kibanamachine-reporter)
|
||||
export KIBANA_CI_REPORTER_KEY
|
||||
|
||||
# Setup Failed Test Reporter Elasticsearch credentials
|
||||
{
|
||||
TEST_FAILURES_ES_CLOUD_ID=$(retry 5 5 vault read -field=cloud_id secret/kibana-issues/dev/failed_tests_reporter_es)
|
||||
export TEST_FAILURES_ES_CLOUD_ID
|
||||
|
||||
TEST_FAILURES_ES_USERNAME=$(retry 5 5 vault read -field=username secret/kibana-issues/dev/failed_tests_reporter_es)
|
||||
export TEST_FAILURES_ES_USERNAME
|
||||
|
||||
TEST_FAILURES_ES_PASSWORD=$(retry 5 5 vault read -field=password secret/kibana-issues/dev/failed_tests_reporter_es)
|
||||
export TEST_FAILURES_ES_PASSWORD
|
||||
}
|
||||
|
||||
# By default, all steps should set up these things to get a full environment before running
|
||||
# It can be skipped for pipeline upload steps though, to make job start time a little faster
|
||||
if [[ "${SKIP_CI_SETUP:-}" != "true" ]]; then
|
||||
if [[ -d .buildkite/scripts && "${BUILDKITE_COMMAND:-}" != "buildkite-agent pipeline upload"* ]]; then
|
||||
source .buildkite/scripts/common/util.sh
|
||||
source .buildkite/scripts/common/env.sh
|
||||
source .buildkite/scripts/common/setup_node.sh
|
||||
source .buildkite/scripts/common/setup_bazel.sh
|
||||
|
|
21
.buildkite/scripts/lifecycle/print_agent_links.js
Normal file
21
.buildkite/scripts/lifecycle/print_agent_links.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
const NOW = new Date();
|
||||
const TWO_HOURS = new Date(NOW.getTime() + 2 * 60 * 60 * 1000);
|
||||
|
||||
const METRICS_URL = [
|
||||
`https://kibana-ops-buildkite-monitoring.kb.us-central1.gcp.cloud.es.io:9243`,
|
||||
`/app/metrics/link-to/host-detail/${process.env.BUILDKITE_AGENT_NAME}`,
|
||||
`?to=${TWO_HOURS.getTime()}`,
|
||||
`&from=${NOW.getTime()}`,
|
||||
].join('');
|
||||
|
||||
const LOGS_URL = [
|
||||
`https://kibana-ops-buildkite-monitoring.kb.us-central1.gcp.cloud.es.io:9243`,
|
||||
`/app/logs/link-to/host-logs/${process.env.BUILDKITE_AGENT_NAME}`,
|
||||
`?time=${NOW.getTime()}`,
|
||||
].join('');
|
||||
|
||||
console.log('--- Agent Debug Links');
|
||||
console.log('Agent Metrics:');
|
||||
console.log('\u001b]1339;' + `url='${METRICS_URL}'\u0007`);
|
||||
console.log('Agent Logs:');
|
||||
console.log('\u001b]1339;' + `url='${LOGS_URL}'\u0007`);
|
13
.buildkite/scripts/post_build_kibana_plugins.sh
Executable file
13
.buildkite/scripts/post_build_kibana_plugins.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "--- Archive built plugins"
|
||||
shopt -s globstar
|
||||
tar -zcf \
|
||||
target/kibana-default-plugins.tar.gz \
|
||||
x-pack/plugins/**/target/public \
|
||||
x-pack/test/**/target/public \
|
||||
examples/**/target/public \
|
||||
x-pack/examples/**/target/public \
|
||||
test/**/target/public
|
|
@ -5,4 +5,5 @@ set -euo pipefail
|
|||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/build_kibana.sh
|
||||
.buildkite/scripts/build_kibana_plugins.sh
|
||||
.buildkite/scripts/post_build_kibana_plugins.sh
|
||||
.buildkite/scripts/post_build_kibana.sh
|
||||
|
|
22
.buildkite/scripts/steps/checks.sh
Executable file
22
.buildkite/scripts/steps/checks.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
.buildkite/scripts/steps/checks/commit/commit.sh
|
||||
.buildkite/scripts/steps/checks/telemetry.sh
|
||||
.buildkite/scripts/steps/checks/ts_projects.sh
|
||||
.buildkite/scripts/steps/checks/jest_configs.sh
|
||||
.buildkite/scripts/steps/checks/doc_api_changes.sh
|
||||
.buildkite/scripts/steps/checks/kbn_pm_dist.sh
|
||||
.buildkite/scripts/steps/checks/plugin_list_docs.sh
|
||||
.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
|
||||
.buildkite/scripts/steps/checks/bundle_limits.sh
|
||||
.buildkite/scripts/steps/checks/i18n.sh
|
||||
.buildkite/scripts/steps/checks/file_casing.sh
|
||||
.buildkite/scripts/steps/checks/licenses.sh
|
||||
.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh
|
||||
.buildkite/scripts/steps/checks/verify_notice.sh
|
||||
.buildkite/scripts/steps/checks/test_projects.sh
|
||||
.buildkite/scripts/steps/checks/test_hardening.sh
|
8
.buildkite/scripts/steps/checks/baseline_plugin_public_api_docs.sh
Executable file
8
.buildkite/scripts/steps/checks/baseline_plugin_public_api_docs.sh
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Building api docs
|
||||
node --max-old-space-size=12000 scripts/build_api_docs
|
10
.buildkite/scripts/steps/checks/bundle_limits.sh
Executable file
10
.buildkite/scripts/steps/checks/bundle_limits.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Bundle Limits
|
||||
|
||||
checks-reporter-with-killswitch "Check Bundle Limits" \
|
||||
node scripts/build_kibana_platform_plugins --validate-limits
|
14
.buildkite/scripts/steps/checks/commit/commit.sh
Executable file
14
.buildkite/scripts/steps/checks/commit/commit.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
# Runs pre-commit hook script for the files touched in the last commit.
|
||||
# That way we can ensure a set of quick commit checks earlier as we removed
|
||||
# the pre-commit hook installation by default.
|
||||
# If files are more than 200 we will skip it and just use
|
||||
# the further ci steps that already check linting and file casing for the entire repo.
|
||||
echo --- Quick commit checks
|
||||
checks-reporter-with-killswitch "Quick commit checks" \
|
||||
"$(dirname "${0}")/commit_check_runner.sh"
|
13
.buildkite/scripts/steps/checks/commit/commit_check_runner.sh
Executable file
13
.buildkite/scripts/steps/checks/commit/commit_check_runner.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
run_quick_commit_checks() {
|
||||
echo "!!!!!!!! ATTENTION !!!!!!!!
|
||||
That check is intended to provide earlier CI feedback after we remove the automatic install for the local pre-commit hook.
|
||||
If you want, you can still manually install the pre-commit hook locally by running 'node scripts/register_git_hook locally'
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
"
|
||||
|
||||
node scripts/precommit_hook.js --ref HEAD~1..HEAD --max-files 200 --verbose
|
||||
}
|
||||
|
||||
run_quick_commit_checks
|
9
.buildkite/scripts/steps/checks/doc_api_changes.sh
Executable file
9
.buildkite/scripts/steps/checks/doc_api_changes.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Doc API Changes
|
||||
checks-reporter-with-killswitch "Check Doc API Changes" \
|
||||
node scripts/check_published_api_changes
|
9
.buildkite/scripts/steps/checks/file_casing.sh
Executable file
9
.buildkite/scripts/steps/checks/file_casing.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check File Casing
|
||||
checks-reporter-with-killswitch "Check File Casing" \
|
||||
node scripts/check_file_casing --quiet
|
9
.buildkite/scripts/steps/checks/i18n.sh
Executable file
9
.buildkite/scripts/steps/checks/i18n.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check i18n
|
||||
checks-reporter-with-killswitch "Check i18n" \
|
||||
node scripts/i18n_check --ignore-missing
|
9
.buildkite/scripts/steps/checks/jest_configs.sh
Executable file
9
.buildkite/scripts/steps/checks/jest_configs.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Jest Configs
|
||||
checks-reporter-with-killswitch "Check Jest Configs" \
|
||||
node scripts/check_jest_configs
|
10
.buildkite/scripts/steps/checks/kbn_pm_dist.sh
Executable file
10
.buildkite/scripts/steps/checks/kbn_pm_dist.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo "--- Building kbn-pm distributable"
|
||||
yarn kbn run build -i @kbn/pm
|
||||
|
||||
verify_no_git_changes 'yarn kbn run build -i @kbn/pm'
|
9
.buildkite/scripts/steps/checks/licenses.sh
Executable file
9
.buildkite/scripts/steps/checks/licenses.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Licenses
|
||||
checks-reporter-with-killswitch "Check Licenses" \
|
||||
node scripts/check_licenses --dev
|
10
.buildkite/scripts/steps/checks/plugin_list_docs.sh
Executable file
10
.buildkite/scripts/steps/checks/plugin_list_docs.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo "--- Building plugin list docs"
|
||||
node scripts/build_plugin_list_docs
|
||||
|
||||
verify_no_git_changes 'node scripts/build_plugin_list_docs'
|
9
.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh
Executable file
9
.buildkite/scripts/steps/checks/plugins_with_circular_deps.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Plugins With Circular Dependencies
|
||||
checks-reporter-with-killswitch "Check Plugins With Circular Dependencies" \
|
||||
node scripts/find_plugins_with_circular_deps
|
9
.buildkite/scripts/steps/checks/telemetry.sh
Executable file
9
.buildkite/scripts/steps/checks/telemetry.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check Telemetry Schema
|
||||
checks-reporter-with-killswitch "Check Telemetry Schema" \
|
||||
node scripts/telemetry_check
|
9
.buildkite/scripts/steps/checks/test_hardening.sh
Executable file
9
.buildkite/scripts/steps/checks/test_hardening.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Test Hardening
|
||||
checks-reporter-with-killswitch "Test Hardening" \
|
||||
node scripts/test_hardening
|
9
.buildkite/scripts/steps/checks/test_projects.sh
Executable file
9
.buildkite/scripts/steps/checks/test_projects.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Test Projects
|
||||
checks-reporter-with-killswitch "Test Projects" \
|
||||
yarn kbn run test --exclude kibana --oss --skip-kibana-plugins --skip-missing
|
9
.buildkite/scripts/steps/checks/ts_projects.sh
Executable file
9
.buildkite/scripts/steps/checks/ts_projects.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Check TypeScript Projects
|
||||
checks-reporter-with-killswitch "Check TypeScript Projects" \
|
||||
node scripts/check_ts_projects
|
19
.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
Executable file
19
.buildkite/scripts/steps/checks/type_check_plugin_public_api_docs.sh
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Build TS Refs
|
||||
checks-reporter-with-killswitch "Build TS Refs" \
|
||||
node scripts/build_ts_refs \
|
||||
--clean \
|
||||
--no-cache \
|
||||
--force
|
||||
|
||||
echo --- Check Types
|
||||
checks-reporter-with-killswitch "Check Types" \
|
||||
node scripts/type_check
|
||||
|
||||
echo --- Building api docs
|
||||
node --max-old-space-size=12000 scripts/build_api_docs
|
9
.buildkite/scripts/steps/checks/verify_notice.sh
Executable file
9
.buildkite/scripts/steps/checks/verify_notice.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
echo --- Verify NOTICE
|
||||
checks-reporter-with-killswitch "Verify NOTICE" \
|
||||
node scripts/notice --validate
|
|
@ -2,9 +2,6 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
export DISABLE_BOOTSTRAP_VALIDATION=true
|
||||
export BUILD_TS_REFS_DISABLE=true
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
source "$(dirname "${0}")/config.sh"
|
||||
|
|
10
.buildkite/scripts/steps/functional/common.sh
Executable file
10
.buildkite/scripts/steps/functional/common.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/download_build_artifacts.sh
|
||||
|
||||
is_test_execution_step
|
13
.buildkite/scripts/steps/functional/oss_accessibility.sh
Executable file
13
.buildkite/scripts/steps/functional/oss_accessibility.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
echo --- OSS Accessibility Tests
|
||||
|
||||
checks-reporter-with-killswitch "Kibana accessibility tests" \
|
||||
node scripts/functional_tests \
|
||||
--debug --bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--config test/accessibility/config.ts
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/download_build_artifacts.sh
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
export CI_GROUP=${CI_GROUP:-$((BUILDKITE_PARALLEL_JOB+1))}
|
||||
export JOB=kibana-oss-ciGroup${CI_GROUP}
|
||||
|
||||
echo "--- OSS CI Group $CI_GROUP"
|
||||
|
||||
node scripts/functional_tests \
|
||||
--bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "ciGroup$CI_GROUP"
|
||||
checks-reporter-with-killswitch "Functional tests / Group ${CI_GROUP}" \
|
||||
node scripts/functional_tests \
|
||||
--bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "ciGroup$CI_GROUP"
|
||||
|
|
14
.buildkite/scripts/steps/functional/oss_firefox.sh
Executable file
14
.buildkite/scripts/steps/functional/oss_firefox.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
echo --- OSS Firefox Smoke Tests
|
||||
|
||||
checks-reporter-with-killswitch "Firefox smoke test" \
|
||||
node scripts/functional_tests \
|
||||
--bail --debug \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "includeFirefox" \
|
||||
--config test/functional/config.firefox.js
|
46
.buildkite/scripts/steps/functional/oss_misc.sh
Executable file
46
.buildkite/scripts/steps/functional/oss_misc.sh
Executable file
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Required, at least for kbn_sample_panel_action
|
||||
export BUILD_TS_REFS_DISABLE=false
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
# Required, at least for plugin_functional tests
|
||||
.buildkite/scripts/build_kibana_plugins.sh
|
||||
|
||||
echo --- Plugin Functional Tests
|
||||
checks-reporter-with-killswitch "Plugin Functional Tests" \
|
||||
node scripts/functional_tests \
|
||||
--config test/plugin_functional/config.ts \
|
||||
--bail \
|
||||
--debug
|
||||
|
||||
echo --- Interpreter Functional Tests
|
||||
checks-reporter-with-killswitch "Interpreter Functional Tests" \
|
||||
node scripts/functional_tests \
|
||||
--config test/interpreter_functional/config.ts \
|
||||
--bail \
|
||||
--debug \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION"
|
||||
|
||||
echo --- Server Integration Tests
|
||||
checks-reporter-with-killswitch "Server Integration Tests" \
|
||||
node scripts/functional_tests \
|
||||
--config test/server_integration/http/ssl/config.js \
|
||||
--config test/server_integration/http/ssl_redirect/config.js \
|
||||
--config test/server_integration/http/platform/config.ts \
|
||||
--config test/server_integration/http/ssl_with_p12/config.js \
|
||||
--config test/server_integration/http/ssl_with_p12_intermediate/config.js \
|
||||
--bail \
|
||||
--debug \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION"
|
||||
|
||||
# Tests that must be run against source in order to build test plugins
|
||||
echo --- Status Integration Tests
|
||||
checks-reporter-with-killswitch "Status Integration Tests" \
|
||||
node scripts/functional_tests \
|
||||
--config test/server_integration/http/platform/config.status.ts \
|
||||
--bail \
|
||||
--debug
|
15
.buildkite/scripts/steps/functional/xpack_accessibility.sh
Executable file
15
.buildkite/scripts/steps/functional/xpack_accessibility.sh
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
cd "$XPACK_DIR"
|
||||
|
||||
echo --- Default Accessibility Tests
|
||||
|
||||
checks-reporter-with-killswitch "X-Pack accessibility tests" \
|
||||
node scripts/functional_tests \
|
||||
--debug --bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--config test/accessibility/config.ts
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/download_build_artifacts.sh
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
export CI_GROUP=${CI_GROUP:-$((BUILDKITE_PARALLEL_JOB+1))}
|
||||
export JOB=kibana-default-ciGroup${CI_GROUP}
|
||||
|
@ -12,7 +11,10 @@ echo "--- Default CI Group $CI_GROUP"
|
|||
|
||||
cd "$XPACK_DIR"
|
||||
|
||||
node scripts/functional_tests \
|
||||
--bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "ciGroup$CI_GROUP"
|
||||
checks-reporter-with-killswitch "X-Pack Chrome Functional tests / Group ${CI_GROUP}" \
|
||||
node scripts/functional_tests \
|
||||
--bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "ciGroup$CI_GROUP"
|
||||
|
||||
cd "$KIBANA_DIR"
|
||||
|
|
17
.buildkite/scripts/steps/functional/xpack_firefox.sh
Executable file
17
.buildkite/scripts/steps/functional/xpack_firefox.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/steps/functional/common.sh
|
||||
|
||||
cd "$XPACK_DIR"
|
||||
|
||||
echo --- Default Firefox Smoke Tests
|
||||
|
||||
checks-reporter-with-killswitch "X-Pack firefox smoke test" \
|
||||
node scripts/functional_tests \
|
||||
--debug --bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--include-tag "includeFirefox" \
|
||||
--config test/functional/config.firefox.js \
|
||||
--config test/functional_embedded/config.firefox.ts
|
17
.buildkite/scripts/steps/functional/xpack_saved_object_field_metrics.sh
Executable file
17
.buildkite/scripts/steps/functional/xpack_saved_object_field_metrics.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/download_build_artifacts.sh
|
||||
|
||||
cd "$XPACK_DIR"
|
||||
|
||||
echo --- Capture Kibana Saved Objects field count metrics
|
||||
checks-reporter-with-killswitch "Capture Kibana Saved Objects field count metrics" \
|
||||
node scripts/functional_tests \
|
||||
--debug --bail \
|
||||
--kibana-install-dir "$KIBANA_BUILD_LOCATION" \
|
||||
--config test/saved_objects_field_count/config.ts;
|
15
.buildkite/scripts/steps/lint.sh
Executable file
15
.buildkite/scripts/steps/lint.sh
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
echo '--- Lint: stylelint'
|
||||
checks-reporter-with-killswitch "Lint: stylelint" \
|
||||
node scripts/stylelint
|
||||
|
||||
echo '--- Lint: eslint'
|
||||
checks-reporter-with-killswitch "Lint: eslint" \
|
||||
node scripts/eslint --no-cache
|
|
@ -2,9 +2,6 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
export DISABLE_BOOTSTRAP_VALIDATION=true
|
||||
export BUILD_TS_REFS_DISABLE=true
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
.buildkite/scripts/build_kibana.sh
|
||||
.buildkite/scripts/post_build_kibana.sh
|
||||
|
|
106
.buildkite/scripts/steps/storybooks/build_and_upload.js
Normal file
106
.buildkite/scripts/steps/storybooks/build_and_upload.js
Normal file
|
@ -0,0 +1,106 @@
|
|||
const execSync = require('child_process').execSync;
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// TODO - how to generate this dynamically?
|
||||
const STORYBOOKS = [
|
||||
'apm',
|
||||
'canvas',
|
||||
'ci_composite',
|
||||
'url_template_editor',
|
||||
'codeeditor',
|
||||
'dashboard',
|
||||
'dashboard_enhanced',
|
||||
'data_enhanced',
|
||||
'embeddable',
|
||||
'infra',
|
||||
'security_solution',
|
||||
'ui_actions_enhanced',
|
||||
'observability',
|
||||
'presentation',
|
||||
'lists',
|
||||
];
|
||||
|
||||
const GITHUB_CONTEXT = 'Build and Publish Storybooks';
|
||||
|
||||
const STORYBOOK_DIRECTORY =
|
||||
process.env.BUILDKITE_PULL_REQUEST && process.env.BUILDKITE_PULL_REQUEST !== 'false'
|
||||
? `pr-${process.env.BUILDKITE_PULL_REQUEST}`
|
||||
: process.env.BUILDKITE_BRANCH.replace('/', '__');
|
||||
const STORYBOOK_BUCKET = 'ci-artifacts.kibana.dev/storybooks';
|
||||
const STORYBOOK_BUCKET_URL = `https://${STORYBOOK_BUCKET}/${STORYBOOK_DIRECTORY}`;
|
||||
const STORYBOOK_BASE_URL = `${STORYBOOK_BUCKET_URL}/${process.env.BUILDKITE_COMMIT}`;
|
||||
|
||||
const exec = (...args) => execSync(args.join(' '), { stdio: 'inherit' });
|
||||
|
||||
const ghStatus = (state, description) =>
|
||||
exec(
|
||||
`gh api "repos/elastic/kibana/statuses/${process.env.BUILDKITE_COMMIT}"`,
|
||||
`-f state=${state}`,
|
||||
`-f target_url="${process.env.BUILDKITE_BUILD_URL}"`,
|
||||
`-f context="${GITHUB_CONTEXT}"`,
|
||||
`-f description="${description}"`,
|
||||
`--silent`
|
||||
);
|
||||
|
||||
const build = () => {
|
||||
console.log('--- Building Storybooks');
|
||||
|
||||
for (const storybook of STORYBOOKS) {
|
||||
exec(`STORYBOOK_BASE_URL=${STORYBOOK_BASE_URL}`, `yarn storybook --site ${storybook}`);
|
||||
}
|
||||
};
|
||||
|
||||
const upload = () => {
|
||||
const originalDirectory = process.cwd();
|
||||
try {
|
||||
console.log('--- Generating Storybooks HTML');
|
||||
|
||||
process.chdir(path.join('.', 'built_assets', 'storybook'));
|
||||
fs.renameSync('ci_composite', 'composite');
|
||||
|
||||
const storybooks = execSync(`ls -1d */`)
|
||||
.toString()
|
||||
.trim()
|
||||
.split('\n')
|
||||
.map((path) => path.replace('/', ''))
|
||||
.filter((path) => path != 'composite');
|
||||
|
||||
const listHtml = storybooks
|
||||
.map((storybook) => `<li><a href="${STORYBOOK_BASE_URL}/${storybook}">${storybook}</a></li>`)
|
||||
.join('\n');
|
||||
|
||||
const html = `
|
||||
<html>
|
||||
<body>
|
||||
<h1>Storybooks</h1>
|
||||
<p><a href="${STORYBOOK_BASE_URL}/composite">Composite Storybook</a></p>
|
||||
<h2>All</h2>
|
||||
<ul>
|
||||
${listHtml}
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
`;
|
||||
|
||||
fs.writeFileSync('index.html', html);
|
||||
|
||||
console.log('--- Uploading Storybooks');
|
||||
exec(`
|
||||
gsutil -q -m cp -r -z js,css,html,json,map,txt,svg '*' 'gs://${STORYBOOK_BUCKET}/${STORYBOOK_DIRECTORY}/${process.env.BUILDKITE_COMMIT}/'
|
||||
gsutil -h "Cache-Control:no-cache, max-age=0, no-transform" cp -z html 'index.html' 'gs://${STORYBOOK_BUCKET}/${STORYBOOK_DIRECTORY}/latest/'
|
||||
`);
|
||||
} finally {
|
||||
process.chdir(originalDirectory);
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
ghStatus('pending', 'Building Storybooks');
|
||||
build();
|
||||
upload();
|
||||
ghStatus('success', 'Storybooks built');
|
||||
} catch (error) {
|
||||
ghStatus('error', 'Building Storybooks failed');
|
||||
throw error;
|
||||
}
|
7
.buildkite/scripts/steps/storybooks/build_and_upload.sh
Executable file
7
.buildkite/scripts/steps/storybooks/build_and_upload.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
node .buildkite/scripts/steps/storybooks/build_and_upload.js
|
|
@ -2,10 +2,15 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
is_test_execution_step
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
echo '--- API Integration Tests'
|
||||
node scripts/functional_tests \
|
||||
--config test/api_integration/config.js \
|
||||
--bail \
|
||||
--debug
|
||||
echo --- API Integration Tests
|
||||
checks-reporter-with-killswitch "API Integration Tests" \
|
||||
node scripts/functional_tests \
|
||||
--config test/api_integration/config.js \
|
||||
--bail \
|
||||
--debug
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
is_test_execution_step
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
echo '--- Jest'
|
||||
node scripts/jest --ci --verbose --maxWorkers=13
|
||||
checks-reporter-with-killswitch "Jest Unit Tests" \
|
||||
node scripts/jest --ci --verbose --maxWorkers=10
|
||||
|
|
|
@ -2,7 +2,12 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
source .buildkite/scripts/common/util.sh
|
||||
|
||||
is_test_execution_step
|
||||
|
||||
.buildkite/scripts/bootstrap.sh
|
||||
|
||||
echo '--- Jest Integration Tests'
|
||||
node scripts/jest_integration --ci --verbose
|
||||
checks-reporter-with-killswitch "Jest Integration Tests" \
|
||||
node scripts/jest_integration --ci --verbose
|
||||
|
|
|
@ -10,7 +10,6 @@ root:
|
|||
- ciGroup9
|
||||
- ciGroup10
|
||||
- ciGroup11
|
||||
- ciGroup12
|
||||
|
||||
xpack:
|
||||
- ciGroup1
|
||||
|
|
138
packages/kbn-test/src/failed_tests_reporter/es_config
Normal file
138
packages/kbn-test/src/failed_tests_reporter/es_config
Normal file
|
@ -0,0 +1,138 @@
|
|||
PUT _ilm/policy/test-failures-policy
|
||||
{
|
||||
"policy": {
|
||||
"phases": {
|
||||
"hot": {
|
||||
"actions": {
|
||||
"rollover": {
|
||||
"max_primary_shard_size": "50gb"
|
||||
}
|
||||
}
|
||||
},
|
||||
"warm": {
|
||||
"min_age": "30d",
|
||||
"actions": {
|
||||
"shrink": {
|
||||
"number_of_shards": 1
|
||||
},
|
||||
"forcemerge": {
|
||||
"max_num_segments": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"cold": {
|
||||
"min_age": "60d",
|
||||
"actions": {
|
||||
"searchable_snapshot": {
|
||||
"snapshot_repository": "found-snapshots"
|
||||
}
|
||||
}
|
||||
},
|
||||
"frozen": {
|
||||
"min_age": "90d",
|
||||
"actions": {
|
||||
"searchable_snapshot": {
|
||||
"snapshot_repository": "found-snapshots"
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"min_age": "735d",
|
||||
"actions": {
|
||||
"delete": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Creates a component template for mappings
|
||||
PUT _component_template/test-failures-mappings
|
||||
{
|
||||
"template": {
|
||||
"mappings": {
|
||||
"properties": {
|
||||
"@timestamp": {
|
||||
"type": "date",
|
||||
"format": "date_optional_time||epoch_millis"
|
||||
},
|
||||
"build": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"jobId": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword"
|
||||
},
|
||||
"url": {
|
||||
"type": "keyword"
|
||||
}
|
||||
}
|
||||
},
|
||||
"failure": {
|
||||
"properties": {
|
||||
"classname": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"failure": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"likelyIrrelevant": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword"
|
||||
},
|
||||
"system-out": {
|
||||
"type": "match_only_text"
|
||||
},
|
||||
"time": {
|
||||
"type": "double"
|
||||
}
|
||||
}
|
||||
},
|
||||
"git": {
|
||||
"properties": {
|
||||
"branch": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"commit": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
},
|
||||
"repo": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 256
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Creates a component template for index settings
|
||||
PUT _component_template/test-failures-settings
|
||||
{
|
||||
"template": {
|
||||
"settings": {
|
||||
"index.lifecycle.name": "test-failures-policy"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PUT _index_template/test-failures-index-template
|
||||
{
|
||||
"index_patterns": ["test-failures*"],
|
||||
"data_stream": { },
|
||||
"composed_of": [ "test-failures-mappings", "test-failures-settings" ],
|
||||
"priority": 500
|
||||
}
|
|
@ -26,6 +26,13 @@ it('discovers failures in ftr report', async () => {
|
|||
",
|
||||
"likelyIrrelevant": false,
|
||||
"name": "maps app maps loaded from sample data ecommerce \\"before all\\" hook",
|
||||
"system-out": "
|
||||
[00:00:00] │
|
||||
[00:07:04] └-: maps app
|
||||
...
|
||||
[00:15:02] │
|
||||
|
||||
",
|
||||
"time": "154.378",
|
||||
},
|
||||
Object {
|
||||
|
@ -39,6 +46,12 @@ it('discovers failures in ftr report', async () => {
|
|||
"likelyIrrelevant": true,
|
||||
"metadata-json": "{\\"messages\\":[\\"foo\\"],\\"screenshots\\":[{\\"name\\":\\"failure[dashboard app using current data dashboard snapshots compare TSVB snapshot]\\",\\"url\\":\\"https://storage.googleapis.com/kibana-ci-artifacts/jobs/elastic+kibana+7.x/1632/kibana-oss-tests/test/functional/screenshots/failure/dashboard%20app%20using%20current%20data%20dashboard%20snapshots%20compare%20TSVB%20snapshot.png\\"}]}",
|
||||
"name": "maps app \\"after all\\" hook",
|
||||
"system-out": "
|
||||
[00:00:00] │
|
||||
[00:07:04] └-: maps app
|
||||
...
|
||||
|
||||
",
|
||||
"time": "0.179",
|
||||
},
|
||||
Object {
|
||||
|
@ -50,6 +63,7 @@ it('discovers failures in ftr report', async () => {
|
|||
at process._tickCallback (internal/process/next_tick.js:68:7) name: 'NoSuchSessionError', remoteStacktrace: '' }",
|
||||
"likelyIrrelevant": true,
|
||||
"name": "machine learning anomaly detection saved search with lucene query job creation opens the advanced section",
|
||||
"system-out": "[00:21:57] └-: machine learning...",
|
||||
"time": "6.040",
|
||||
},
|
||||
]
|
||||
|
@ -68,6 +82,7 @@ it('discovers failures in jest report', async () => {
|
|||
",
|
||||
"likelyIrrelevant": false,
|
||||
"name": "launcher can reconnect if process died",
|
||||
"system-out": "",
|
||||
"time": "7.060",
|
||||
},
|
||||
]
|
||||
|
@ -95,6 +110,9 @@ it('discovers failures in mocha report', async () => {
|
|||
",
|
||||
"likelyIrrelevant": true,
|
||||
"name": "code in multiple nodes \\"before all\\" hook",
|
||||
"system-out": "
|
||||
|
||||
",
|
||||
"time": "0.121",
|
||||
},
|
||||
Object {
|
||||
|
@ -106,6 +124,9 @@ it('discovers failures in mocha report', async () => {
|
|||
",
|
||||
"likelyIrrelevant": true,
|
||||
"name": "code in multiple nodes \\"after all\\" hook",
|
||||
"system-out": "
|
||||
|
||||
",
|
||||
"time": "0.003",
|
||||
},
|
||||
]
|
||||
|
|
|
@ -13,16 +13,21 @@ import { FailedTestCase, TestReport, makeFailedTestCaseIter } from './test_repor
|
|||
export type TestFailure = FailedTestCase['$'] & {
|
||||
failure: string;
|
||||
likelyIrrelevant: boolean;
|
||||
'system-out'?: string;
|
||||
};
|
||||
|
||||
const getFailureText = (failure: FailedTestCase['failure']) => {
|
||||
const [failureNode] = failure;
|
||||
|
||||
if (failureNode && typeof failureNode === 'object' && typeof failureNode._ === 'string') {
|
||||
return stripAnsi(failureNode._);
|
||||
const getText = (node?: Array<string | { _: string }>) => {
|
||||
if (!node) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return stripAnsi(String(failureNode));
|
||||
const [nodeWrapped] = node;
|
||||
|
||||
if (nodeWrapped && typeof nodeWrapped === 'object' && typeof nodeWrapped._ === 'string') {
|
||||
return stripAnsi(nodeWrapped._);
|
||||
}
|
||||
|
||||
return stripAnsi(String(nodeWrapped));
|
||||
};
|
||||
|
||||
const isLikelyIrrelevant = (name: string, failure: string) => {
|
||||
|
@ -62,7 +67,7 @@ export function getFailures(report: TestReport) {
|
|||
const failures: TestFailure[] = [];
|
||||
|
||||
for (const testCase of makeFailedTestCaseIter(report)) {
|
||||
const failure = getFailureText(testCase.failure);
|
||||
const failure = getText(testCase.failure);
|
||||
const likelyIrrelevant = isLikelyIrrelevant(testCase.$.name, failure);
|
||||
|
||||
failures.push({
|
||||
|
@ -71,6 +76,7 @@ export function getFailures(report: TestReport) {
|
|||
// Strip ANSI color characters
|
||||
failure,
|
||||
likelyIrrelevant,
|
||||
'system-out': getText(testCase['system-out']),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ describe('createFailureIssue()', () => {
|
|||
this is the failure text
|
||||
\`\`\`
|
||||
|
||||
First failure: [Jenkins Build](https://build-url)
|
||||
First failure: [CI Build](https://build-url)
|
||||
|
||||
<!-- kibanaCiData = {\\"failed-test\\":{\\"test.class\\":\\"some.classname\\",\\"test.name\\":\\"test name\\",\\"test.failCount\\":1}} -->",
|
||||
Array [
|
||||
|
@ -100,7 +100,7 @@ describe('updateFailureIssue()', () => {
|
|||
"calls": Array [
|
||||
Array [
|
||||
1234,
|
||||
"New failure: [Jenkins Build](https://build-url)",
|
||||
"New failure: [CI Build](https://build-url)",
|
||||
],
|
||||
],
|
||||
"results": Array [
|
||||
|
|
|
@ -21,7 +21,7 @@ export async function createFailureIssue(buildUrl: string, failure: TestFailure,
|
|||
failure.failure,
|
||||
'```',
|
||||
'',
|
||||
`First failure: [Jenkins Build](${buildUrl})`,
|
||||
`First failure: [CI Build](${buildUrl})`,
|
||||
].join('\n'),
|
||||
{
|
||||
'test.class': failure.classname,
|
||||
|
@ -41,7 +41,7 @@ export async function updateFailureIssue(buildUrl: string, issue: GithubIssueMin
|
|||
});
|
||||
|
||||
await api.editIssueBodyAndEnsureOpen(issue.number, newBody);
|
||||
await api.addIssueComment(issue.number, `New failure: [Jenkins Build](${buildUrl})`);
|
||||
await api.addIssueComment(issue.number, `New failure: [CI Build](${buildUrl})`);
|
||||
|
||||
return newCount;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { Client } from '@elastic/elasticsearch';
|
||||
import { createFailError, ToolingLog } from '@kbn/dev-utils';
|
||||
|
||||
import { TestFailure } from './get_failures';
|
||||
|
||||
export async function reportFailuresToEs(log: ToolingLog, failures: TestFailure[]) {
|
||||
if (!failures?.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
!process.env.TEST_FAILURES_ES_CLOUD_ID ||
|
||||
!process.env.TEST_FAILURES_ES_USERNAME ||
|
||||
!process.env.TEST_FAILURES_ES_PASSWORD
|
||||
) {
|
||||
throw createFailError(
|
||||
'TEST_FAILURES_ES_CLOUD_ID, TEST_FAILURES_ES_USERNAME, TEST_FAILURES_ES_PASSWORD must be provided to index test failures'
|
||||
);
|
||||
}
|
||||
|
||||
const client = new Client({
|
||||
cloud: {
|
||||
id: process.env.TEST_FAILURES_ES_CLOUD_ID,
|
||||
},
|
||||
auth: {
|
||||
username: process.env.TEST_FAILURES_ES_USERNAME,
|
||||
password: process.env.TEST_FAILURES_ES_PASSWORD,
|
||||
},
|
||||
});
|
||||
|
||||
const body = failures.flatMap((failure) => [
|
||||
{
|
||||
create: {
|
||||
_index: 'test-failures',
|
||||
},
|
||||
},
|
||||
{
|
||||
'@timestamp': new Date(),
|
||||
failure,
|
||||
build: {
|
||||
id: process.env.BUILDKITE_BUILD_ID,
|
||||
name: process.env.BUILDKITE_PIPELINE_NAME,
|
||||
jobId: process.env.BUILDKITE_JOB_ID,
|
||||
url: process.env.BUILDKITE_BUILD_URL,
|
||||
},
|
||||
git: {
|
||||
repo: process.env.BUILDKITE_REPO,
|
||||
branch: process.env.BUILDKITE_BRANCH,
|
||||
commit: process.env.BUILDKITE_COMMIT,
|
||||
},
|
||||
},
|
||||
]);
|
||||
|
||||
const resp = await client.bulk({ body });
|
||||
if (resp?.body?.errors) {
|
||||
log.error(JSON.stringify(resp.body.items, null, 2));
|
||||
}
|
||||
}
|
|
@ -20,12 +20,15 @@ import { getIssueMetadata } from './issue_metadata';
|
|||
import { readTestReport } from './test_report';
|
||||
import { addMessagesToReport } from './add_messages_to_report';
|
||||
import { getReportMessageIter } from './report_metadata';
|
||||
import { reportFailuresToEs } from './report_failures_to_es';
|
||||
|
||||
const DEFAULT_PATTERNS = [Path.resolve(REPO_ROOT, 'target/junit/**/*.xml')];
|
||||
|
||||
export function runFailedTestsReporterCli() {
|
||||
run(
|
||||
async ({ log, flags }) => {
|
||||
const indexInEs = flags['index-errors'];
|
||||
|
||||
let updateGithub = flags['github-update'];
|
||||
if (updateGithub && !process.env.GITHUB_TOKEN) {
|
||||
throw createFailError(
|
||||
|
@ -34,16 +37,25 @@ export function runFailedTestsReporterCli() {
|
|||
}
|
||||
|
||||
if (updateGithub) {
|
||||
// JOB_NAME is formatted as `elastic+kibana+7.x` in some places and `elastic+kibana+7.x/JOB=kibana-intake,node=immutable` in others
|
||||
const jobNameSplit = (process.env.JOB_NAME || '').split(/\+|\//);
|
||||
const branch = jobNameSplit.length >= 3 ? jobNameSplit[2] : process.env.GIT_BRANCH;
|
||||
let branch: string | undefined = '';
|
||||
let isPr = false;
|
||||
|
||||
if (process.env.BUILDKITE === 'true') {
|
||||
branch = process.env.BUILDKITE_BRANCH;
|
||||
isPr = process.env.BUILDKITE_PULL_REQUEST === 'true';
|
||||
} else {
|
||||
// JOB_NAME is formatted as `elastic+kibana+7.x` in some places and `elastic+kibana+7.x/JOB=kibana-intake,node=immutable` in others
|
||||
const jobNameSplit = (process.env.JOB_NAME || '').split(/\+|\//);
|
||||
branch = jobNameSplit.length >= 3 ? jobNameSplit[2] : process.env.GIT_BRANCH;
|
||||
isPr = !!process.env.ghprbPullId;
|
||||
}
|
||||
|
||||
if (!branch) {
|
||||
throw createFailError(
|
||||
'Unable to determine originating branch from job name or other environment variables'
|
||||
);
|
||||
}
|
||||
|
||||
const isPr = !!process.env.ghprbPullId;
|
||||
const isMasterOrVersion = branch === 'master' || branch.match(/^\d+\.(x|\d+)$/);
|
||||
if (!isMasterOrVersion || isPr) {
|
||||
log.info('Failure issues only created on master/version branch jobs');
|
||||
|
@ -83,8 +95,13 @@ export function runFailedTestsReporterCli() {
|
|||
for (const reportPath of reportPaths) {
|
||||
const report = await readTestReport(reportPath);
|
||||
const messages = Array.from(getReportMessageIter(report));
|
||||
const failures = await getFailures(report);
|
||||
|
||||
for (const failure of await getFailures(report)) {
|
||||
if (indexInEs) {
|
||||
await reportFailuresToEs(log, failures);
|
||||
}
|
||||
|
||||
for (const failure of failures) {
|
||||
const pushMessage = (msg: string) => {
|
||||
messages.push({
|
||||
classname: failure.classname,
|
||||
|
@ -153,11 +170,13 @@ export function runFailedTestsReporterCli() {
|
|||
default: {
|
||||
'github-update': true,
|
||||
'report-update': true,
|
||||
'index-errors': true,
|
||||
'build-url': process.env.BUILD_URL,
|
||||
},
|
||||
help: `
|
||||
--no-github-update Execute the CLI without writing to Github
|
||||
--no-report-update Execute the CLI without writing to the JUnit reports
|
||||
--no-index-errors Execute the CLI without indexing failures into Elasticsearch
|
||||
--build-url URL of the failed build, defaults to process.env.BUILD_URL
|
||||
`,
|
||||
},
|
||||
|
|
|
@ -17,7 +17,7 @@ export function getUniqueJunitReportPath(
|
|||
counter?: number
|
||||
): string {
|
||||
const BUILDKITE_ID_SUFFIX = process.env.BUILDKITE_JOB_ID
|
||||
? `-${process.env.BUILDKITE_JOB_ID}`
|
||||
? `-bk__${process.env.BUILDKITE_JOB_ID}`
|
||||
: '';
|
||||
|
||||
const path = Path.resolve(
|
||||
|
|
|
@ -14,7 +14,7 @@ export default function ({ getService }) {
|
|||
const supertest = getService('supertest');
|
||||
|
||||
describe('bundle compression', function () {
|
||||
this.tags(['ciGroup12', 'skipCoverage']);
|
||||
this.tags(['ciGroup11', 'skipCoverage']);
|
||||
|
||||
let buildNum;
|
||||
before(async () => {
|
||||
|
|
|
@ -85,8 +85,8 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {
|
|||
loadTestFile(require.resolve('./_add_to_dashboard.ts'));
|
||||
});
|
||||
|
||||
describe('visualize ciGroup12', function () {
|
||||
this.tags('ciGroup12');
|
||||
describe('visualize ciGroup11', function () {
|
||||
this.tags('ciGroup11');
|
||||
|
||||
loadTestFile(require.resolve('./_tag_cloud'));
|
||||
loadTestFile(require.resolve('./_tsvb_chart'));
|
||||
|
|
|
@ -224,7 +224,6 @@ def ossProks() {
|
|||
'oss-ciGroup9' : kibanaPipeline.ossCiGroupProcess(9),
|
||||
'oss-ciGroup10': kibanaPipeline.ossCiGroupProcess(10),
|
||||
'oss-ciGroup11': kibanaPipeline.ossCiGroupProcess(11),
|
||||
'oss-ciGroup12': kibanaPipeline.ossCiGroupProcess(12),
|
||||
]
|
||||
}
|
||||
|
||||
|
|
|
@ -351,7 +351,7 @@ def runErrorReporter(workspaces) {
|
|||
bash(
|
||||
"""
|
||||
source src/dev/ci_setup/setup_env.sh
|
||||
node scripts/report_failed_tests ${dryRun} ${globs}
|
||||
node scripts/report_failed_tests --no-index-errors ${dryRun} ${globs}
|
||||
""",
|
||||
"Report failed tests, if necessary"
|
||||
)
|
||||
|
|
|
@ -39,7 +39,7 @@ def test() {
|
|||
}
|
||||
|
||||
def ossCiGroups() {
|
||||
def ciGroups = 1..12
|
||||
def ciGroups = 1..11
|
||||
tasks(ciGroups.collect { kibanaPipeline.ossCiGroupProcess(it, true) })
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue