-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI] Add pipeline task queue framework and merge workers into one #64011
Conversation
@elasticmachine merge upstream |
merge conflict between base and head |
jenkins test this |
73371cd
to
950cdde
Compare
Pinging @elastic/apm-ui (Team:apm) |
950cdde
to
9102361
Compare
@elasticmachine merge upstream |
1 similar comment
@elasticmachine merge upstream |
@elasticmachine merge upstream |
@elasticmachine merge upstream |
merge conflict between base and head |
@elasticmachine merge upstream |
merge conflict between base and head |
@elasticmachine merge upstream |
3237ef2
to
146946b
Compare
Hmm, any idea what this is? |
@elasticmachine merge upstream |
I've seen this before with docker builds and it seems to have a bunch of different causes (such as incompatible versions with old kernel versions). I think a |
💛 Build succeeded, but was flaky
Test FailuresFirefox UI Functional Tests.test/functional/apps/visualize/_tsvb_chart·ts.visualize app visual builder metric should populate fields for basic functionsStandard Out
Stack Trace
Build metrics
History
To update your PR or re-run it, just comment with: |
…astic#64011) # Conflicts: # src/dev/notice/generate_notice_from_source.ts # test/scripts/jenkins_build_kibana.sh # test/scripts/jenkins_ci_group.sh # test/scripts/jenkins_xpack_build_kibana.sh
…astic#64011) # Conflicts: # Jenkinsfile # src/dev/notice/generate_notice_from_source.ts # test/scripts/jenkins_build_kibana.sh # test/scripts/jenkins_ci_group.sh # test/scripts/jenkins_security_solution_cypress.sh # test/scripts/jenkins_xpack_build_kibana.sh # vars/kibanaPipeline.groovy
* master: (36 commits) fixed api url in example plugin (elastic#70934) [data.search.aggs]: Remove remaining client dependencies (elastic#70251) [Security Solution][Endpoint] Fix base64 download bug and adopt new user artifact/manifest format (elastic#70998) [Security Solution][Exceptions] - Exception Modal Part I (elastic#70639) [SIEM][Detection Engine][Lists] Adds additional data types to value based lists [SIEM][Detection Engine][Lists] Removes feature flag for lists [APM] Show license callout in ML settings (elastic#70959) Migrate service settings test to jest (elastic#70992) [APM] Add cloud attributes to data telemetry (elastic#71008) Fix breadcrumb on panels for visibility / round corners (elastic#71010) Improve search typescript (elastic#69333) [savedObjects field count] run in baseline job (elastic#70999) [Security Solution] [Timeline] Timeline manager tweaks (elastic#69988) [Endpoint] Support redirect from Policy Details to Ingest when user initiates Edit Policy from Datasource Edit page (elastic#70874) [APM] Add API tests (elastic#70740) [Security Solution][Exceptions] - Tie server and client code together (elastic#70918) [Audit Logging] Add AuditTrail service (elastic#69278) [Usage Collection] Ensure no type duplicates (elastic#70946) [Security Solution] [Timeline] Bugfix for timeline row actions disappear sometimes (elastic#70958) [CI] Add pipeline task queue framework and merge workers into one (elastic#64011) ...
… one (elastic#64011)" This reverts commit 465ed21.
* Revert "temporarily disable firefox functional tests in PRs (#71116)" This reverts commit 54bd07f. * Revert "[savedObjects field count] run in baseline job (#70999)" This reverts commit 53ee7a7. * Revert "[CI] Add pipeline task queue framework and merge workers into one (#64011)" This reverts commit 465ed21. * Revert revert of change to jenkins_xpack_visual_regression.sh Co-authored-by: spalger <spalger@users.noreply.github.com>
This reverts commit b6a06df.
Adds a "task queue" framework to pipelines. This allows CI to be broken down into lots of small units and run in parallel with a maximum level of concurrency. A "task" is just a closure that executes. So, this is like a more managed version of Jenkins's
parallel()
block.This PR also adds a task queue to CI, breaks intake and functional jobs down into small units, and runs everything on the same worker. This means that "Intake" tasks can run while the builds are happening (while normally these extra resources would be wasted).
Each task "process" gets a unique copy of the workspace (with symlinked node_modules) to work out of, so tasks can modify files and such without affecting other tasks.
Some of the intake tasks have hard-coded ports and such for ES/Kibana, so I'm using Docker to run them in isolation and in parallel on the same machine.
As a note, I actually don't really like the idea of creating one huge pipeline that runs on one big machine. It's really difficult to efficiently use resources. This pipeline still has a lot of wasted resources. But, with our constraints (namely, needing to keep Jenkins agent count down to keep Jenkins stable) and the tools currently available to us, I think it will have to do. This at least doesn't lock us into one machine. Multiple task queues can be defined on multiple machines, so tasks can be split up and moved around as needed.
From the code: