-
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: decouple unit and integration tests on CI #27069
chore: decouple unit and integration tests on CI #27069
Conversation
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
Trends 🧪💚 Flaky test reportTests succeeded. Expand to view the summary
Test stats 🧪
|
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.
LGTM. I grepped the code to see if any projects were implementing there own mage test
that does something other than unitTest + integTest and I didn't find anything.
(cherry picked from commit 777daee)
(cherry picked from commit 777daee)
(cherry picked from commit 777daee)
(cherry picked from commit 777daee) Co-authored-by: Manuel de la Peña <[email protected]>
(cherry picked from commit 777daee) Co-authored-by: Manuel de la Peña <[email protected]>
(cherry picked from commit 777daee) Co-authored-by: Manuel de la Peña <[email protected]>
…stic#27148) (cherry picked from commit b40d26e) Co-authored-by: Manuel de la Peña <[email protected]>
What does this PR do?
We are keeping Pipeline2.0-consistency across Beats calling the Python system-tests, using OSS metricbeat's as the canonical reference: run unit tests, then Go integration tests, and finally Python integration tests when needed. This change applies to filebeat and metricbeat in both OSS and xpack flavours.
I finally revisited each Beat and made sure all of them run the unit, goInteg and pythonInteg tests in a consistent manner: instead of calling the obscure mage test command, we separate it in three different stages when needed: mage unitTest, mage goIntegTest and mage pythonIntegTest. I've verified one by one that each of those three commands is present in the build for the related Beat, adding or removing them from the CI descriptor (Jenkinsfile.yml) when/if needed, creating the consistent experience of running atomic commands for each test type.
Why is it important?
First is consistency: metricbeat and filebeat are running system-tests, and we want to operate all Beats on CI in the same manner. That's why we are making the descriptors very similar.
And second, separation of concers: we want to run unit > integration > e2e tests in different stages, so that we acknowledge the power of not building/running code that could have been broken after a possible failure in a previous stage.
Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.Author's Checklist
Related issues