-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
chore: simplify triggering the E2E tests for Beats #21790
Conversation
@@ -285,7 +311,7 @@ def triggerE2ETests(String suite) { | |||
wait: false | |||
) | |||
|
|||
def notifyContext = "${env.GITHUB_CHECK_E2E_TESTS_NAME} for ${env.BEATS_FOLDER}" | |||
def notifyContext = "${env.GITHUB_CHECK_E2E_TESTS_NAME}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only one GH check per PR
def suites = '' // empty value represents all suites in the E2E tests | ||
|
||
catchError(buildResult: 'UNSTABLE', message: 'Unable to run e2e tests', stageResult: 'FAILURE') { | ||
def suitesSet = e2eTestSuites.toSet() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
if (!suitesSet.contains('ALL')) { | ||
suitesSet.each { suite -> | ||
suites += "${suite}," |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified that last comma does not cause any new suite with empty value. See https://beats-ci.elastic.co/job/e2e-tests/job/e2e-testing-mbp/job/master/512/parameters/
/package |
/package |
/package |
/package |
Ok, only one check for the E2E is added to the PR. I'd say it's ready to be merged |
* chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set
* chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set
* feat: add a new step to run the e2e tests for certain parts of Beats (#21100) * feat: add a new step to run the e2e tests for certain parts of Beats We are going to trigger the tests for those parts affected by the elastic-agent, filebeat, or metricbeat, because those are the ones we verify in the e2e-testing suite * chore: do not include heartbeat * feat: trigger the e2e tests * fix: use relative path * chore: use proper target branch name for PRs * chore: use different tag * fix: use proper env variable * chore: pass github checks context to downstream job * chore: revert shared lib version Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: add BASE_DIR env variable Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: remove duplicated env * ffix: add param comma separator * fix: wrong copy&paste * chore: move e2e GH check out of the release context * chore: simplify conditional logic * chore: refine execution of test suites * fix: use proper parameter name * chore: set metricbeat version * chore: remove slack notifications on PRs * chore: update parameter * chore: run multiple test suites per beat type Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [E2E Tests] fix: set versions ony for PRs (#21608) * fix: set versions ony for PRs We want to use default versions per branch when running after a merge * fix: add trailing comma Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [CI: Packaging] fix: push ubi8 images too (#21621) * fix: push ubi8 images too * chore: enhance retries Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: use variables in log * chore: add "-oss" images Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * fix: remove extra curly brace in script (#21692) * fix: remove extra curly brace * chore: proper indent * fix: update fleet test suite name (#21738) * chore: create CI artifacts for DEV usage (#21645) It will create the artifacts with some requirements related to integrity * chore: simplify triggering the E2E tests for Beats (#21790) * chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set * chore: delegate variant pushes to the right method (#21861) * fix: delegate pushes to variants * chore: group conditions for x-pack * chore: simplify with endsWith Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * feat: package aliases for snapshots (#21960) * feat: push aliases for docker images * feat: build alias for snapshots * fix: only update alias on snapshots Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * fix: wrong image name for alias * fix: reuse variable as groovy does not hide variables by scope * chore: extract common logic to a method * Revert "fix: only update alias on snapshots" This reverts commit cff2cef. * Revert "feat: build alias for snapshots" This reverts commit 707e0d7. * chore: do not push aliases for PRs Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * chore: Use third number as x Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co>
* feat: add a new step to run the e2e tests for certain parts of Beats (#21100) * feat: add a new step to run the e2e tests for certain parts of Beats We are going to trigger the tests for those parts affected by the elastic-agent, filebeat, or metricbeat, because those are the ones we verify in the e2e-testing suite * chore: do not include heartbeat * feat: trigger the e2e tests * fix: use relative path * chore: use proper target branch name for PRs * chore: use different tag * fix: use proper env variable * chore: pass github checks context to downstream job * chore: revert shared lib version Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: add BASE_DIR env variable Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: remove duplicated env * ffix: add param comma separator * fix: wrong copy&paste * chore: move e2e GH check out of the release context * chore: simplify conditional logic * chore: refine execution of test suites * fix: use proper parameter name * chore: set metricbeat version * chore: remove slack notifications on PRs * chore: update parameter * chore: run multiple test suites per beat type Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [E2E Tests] fix: set versions ony for PRs (#21608) * fix: set versions ony for PRs We want to use default versions per branch when running after a merge * fix: add trailing comma Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [CI: Packaging] fix: push ubi8 images too (#21621) * fix: push ubi8 images too * chore: enhance retries Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: use variables in log * chore: add "-oss" images Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * fix: remove extra curly brace in script (#21692) * fix: remove extra curly brace * chore: proper indent * fix: update fleet test suite name (#21738) * chore: create CI artifacts for DEV usage (#21645) It will create the artifacts with some requirements related to integrity * chore: simplify triggering the E2E tests for Beats (#21790) * chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set * chore: delegate variant pushes to the right method (#21861) * fix: delegate pushes to variants * chore: group conditions for x-pack * chore: simplify with endsWith Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> # Conflicts: # .ci/packaging.groovy * feat: package aliases for snapshots (#21960) * feat: push aliases for docker images * feat: build alias for snapshots * fix: only update alias on snapshots Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * fix: wrong image name for alias * fix: reuse variable as groovy does not hide variables by scope * chore: extract common logic to a method * Revert "fix: only update alias on snapshots" This reverts commit cff2cef. * Revert "feat: build alias for snapshots" This reverts commit 707e0d7. * chore: do not push aliases for PRs Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * chore: Use third number as x Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co>
* feat: add a new step to run the e2e tests for certain parts of Beats (elastic#21100) * feat: add a new step to run the e2e tests for certain parts of Beats We are going to trigger the tests for those parts affected by the elastic-agent, filebeat, or metricbeat, because those are the ones we verify in the e2e-testing suite * chore: do not include heartbeat * feat: trigger the e2e tests * fix: use relative path * chore: use proper target branch name for PRs * chore: use different tag * fix: use proper env variable * chore: pass github checks context to downstream job * chore: revert shared lib version Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: add BASE_DIR env variable Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: remove duplicated env * ffix: add param comma separator * fix: wrong copy&paste * chore: move e2e GH check out of the release context * chore: simplify conditional logic * chore: refine execution of test suites * fix: use proper parameter name * chore: set metricbeat version * chore: remove slack notifications on PRs * chore: update parameter * chore: run multiple test suites per beat type Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [E2E Tests] fix: set versions ony for PRs (elastic#21608) * fix: set versions ony for PRs We want to use default versions per branch when running after a merge * fix: add trailing comma Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [CI: Packaging] fix: push ubi8 images too (elastic#21621) * fix: push ubi8 images too * chore: enhance retries Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: use variables in log * chore: add "-oss" images Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * fix: remove extra curly brace in script (elastic#21692) * fix: remove extra curly brace * chore: proper indent * fix: update fleet test suite name (elastic#21738) * chore: create CI artifacts for DEV usage (elastic#21645) It will create the artifacts with some requirements related to integrity * chore: simplify triggering the E2E tests for Beats (elastic#21790) * chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set * chore: delegate variant pushes to the right method (elastic#21861) * fix: delegate pushes to variants * chore: group conditions for x-pack * chore: simplify with endsWith Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * feat: package aliases for snapshots (elastic#21960) * feat: push aliases for docker images * feat: build alias for snapshots * fix: only update alias on snapshots Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * fix: wrong image name for alias * fix: reuse variable as groovy does not hide variables by scope * chore: extract common logic to a method * Revert "fix: only update alias on snapshots" This reverts commit cff2cef. * Revert "feat: build alias for snapshots" This reverts commit 707e0d7. * chore: do not push aliases for PRs Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * chore: Use third number as x Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> (cherry picked from commit 624c459)
…23142) Backports the following commits to 7.x: * feat: add a new step to run the e2e tests for certain parts of Beats (#21100) * [E2E Tests] fix: set versions ony for PRs (#21608) * [CI: Packaging] fix: push ubi8 images too (#21621) * fix: remove extra curly brace in script (#21692) * fix: update fleet test suite name (#21738) * chore: create CI artifacts for DEV usage (#21645) * chore: simplify triggering the E2E tests for Beats (#21790) * chore: delegate variant pushes to the right method (#21861) * feat: package aliases for snapshots (#21960) * fix: use proper param name for e2e tests (#22836) Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Manuel de la Peña <mdelapenya@gmail.com>
…ports (elastic#23142) Backports the following commits to 7.x: * feat: add a new step to run the e2e tests for certain parts of Beats (elastic#21100) * [E2E Tests] fix: set versions ony for PRs (elastic#21608) * [CI: Packaging] fix: push ubi8 images too (elastic#21621) * fix: remove extra curly brace in script (elastic#21692) * fix: update fleet test suite name (elastic#21738) * chore: create CI artifacts for DEV usage (elastic#21645) * chore: simplify triggering the E2E tests for Beats (elastic#21790) * chore: delegate variant pushes to the right method (elastic#21861) * feat: package aliases for snapshots (elastic#21960) * fix: use proper param name for e2e tests (elastic#22836) Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Manuel de la Peña <mdelapenya@gmail.com> (cherry picked from commit 1006bd9)
…23142) (#23396) Backports the following commits to 7.x: * feat: add a new step to run the e2e tests for certain parts of Beats (#21100) * [E2E Tests] fix: set versions ony for PRs (#21608) * [CI: Packaging] fix: push ubi8 images too (#21621) * fix: remove extra curly brace in script (#21692) * fix: update fleet test suite name (#21738) * chore: create CI artifacts for DEV usage (#21645) * chore: simplify triggering the E2E tests for Beats (#21790) * chore: delegate variant pushes to the right method (#21861) * feat: package aliases for snapshots (#21960) * fix: use proper param name for e2e tests (#22836) (cherry picked from commit 1006bd9) Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Manuel de la Peña <mdelapenya@gmail.com>
* feat: add a new step to run the e2e tests for certain parts of Beats (elastic#21100) * feat: add a new step to run the e2e tests for certain parts of Beats We are going to trigger the tests for those parts affected by the elastic-agent, filebeat, or metricbeat, because those are the ones we verify in the e2e-testing suite * chore: do not include heartbeat * feat: trigger the e2e tests * fix: use relative path * chore: use proper target branch name for PRs * chore: use different tag * fix: use proper env variable * chore: pass github checks context to downstream job * chore: revert shared lib version Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: add BASE_DIR env variable Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: remove duplicated env * ffix: add param comma separator * fix: wrong copy&paste * chore: move e2e GH check out of the release context * chore: simplify conditional logic * chore: refine execution of test suites * fix: use proper parameter name * chore: set metricbeat version * chore: remove slack notifications on PRs * chore: update parameter * chore: run multiple test suites per beat type Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [E2E Tests] fix: set versions ony for PRs (elastic#21608) * fix: set versions ony for PRs We want to use default versions per branch when running after a merge * fix: add trailing comma Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * [CI: Packaging] fix: push ubi8 images too (elastic#21621) * fix: push ubi8 images too * chore: enhance retries Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * chore: use variables in log * chore: add "-oss" images Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> * fix: remove extra curly brace in script (elastic#21692) * fix: remove extra curly brace * chore: proper indent * fix: update fleet test suite name (elastic#21738) * chore: create CI artifacts for DEV usage (elastic#21645) It will create the artifacts with some requirements related to integrity * chore: simplify triggering the E2E tests for Beats (elastic#21790) * chore: pass beat as a method argument (no side-effects) * chore: run tests in a separate stage * fix: use parenthesis * chore: update comment * chore: do not trigger E2E tests if no suite was added * fix: use missing curly brackets * fix: wrong closure wrapping * fix: condition was not set * chore: delegate variant pushes to the right method (elastic#21861) * fix: delegate pushes to variants * chore: group conditions for x-pack * chore: simplify with endsWith Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> # Conflicts: # .ci/packaging.groovy * feat: package aliases for snapshots (elastic#21960) * feat: push aliases for docker images * feat: build alias for snapshots * fix: only update alias on snapshots Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * fix: wrong image name for alias * fix: reuse variable as groovy does not hide variables by scope * chore: extract common logic to a method * Revert "fix: only update alias on snapshots" This reverts commit cff2cef. * Revert "feat: build alias for snapshots" This reverts commit 707e0d7. * chore: do not push aliases for PRs Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co> * chore: Use third number as x Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com> Co-authored-by: Jaime Soriano Pastor <jaime.soriano@elastic.co>
What does this PR do?
It creates a Jenkins stage right after the package one, in which we will trigger only one job for the E2E tests. To set the test suites to run, we will use the existing BEATS matrix to configure a collection of suites (if/when needed).
We will convert the collection to a Set to remove duplicates, and willl trigger the E2E job with that configuration.
Why is it important?
With previous approach, it triggers up to 4 builds for almost the same test suites, and the E2E job supports passing multiple suites as an comma-separated list of strings. As a direct consequence, only one GH check will be added to the PR, insteadd of multiple, one per modified Beat.
Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.Author's Checklist