[MDEV-17688] buildbot to test latest C/C 3.1 branch with the latest server 10.2,10.3,10.4,10.5 branch Created: 2018-11-12 Updated: 2021-03-30 Resolved: 2021-03-30 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Tests |
| Fix Version/s: | N/A |
| Type: | Task | Priority: | Major |
| Reporter: | Sergei Golubchik | Assignee: | Sergei Golubchik |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | buildbot | ||
| Description |
|
The most painful part of the 10.2.19 release that used C/C v3.0.7 release was to constantly rebuild/retest 10.2 server after every new commit in the C/C 3.0 branch. Because C/C commits might break server tests, the server couldn't just wait for C/C to be released and then run tests on the released version. For the next 10.2 release we should have buildbot to do it. Every push into C/C 3.0 branch should trigger buildbot run of the server latest 10.2 branch and latest C/C 3.0 branch. Doesn't have to be on all platforms, but the subset of platforms must include Windows. |
| Comments |
| Comment by Elena Stepanova [ 2018-11-12 ] | |||||||||
|
From Serg on slack:
| |||||||||
| Comment by Elena Stepanova [ 2018-11-18 ] | |||||||||
|
Thinking about it, it seems natural to implement the git-branch-based solution above by using the same mechanism that ratzpo is working on in the scope of MDEV-12511 (staging and fire-and-forget). In this case the C/C branch would represent the "staging" branch, and if it builds/runs okay, buildbot would push or force-push into the "merge" branch. ratzpo, serg, is it possible to re-use the same approach? If you think it will take too long and can't happen within the next month (by the next 10.2 release which is planned for December 21st), I can of course still implement the second buildbot-config-based solution as a temporary workaround. It should be technically not very difficult, although it will require a lot of duplication in the buildbot config, and also it will trigger unnecessary dirty builds on the server tree when/if the connector itself is broken and either doesn't build or doesn't run properly. | |||||||||
| Comment by Sergei Golubchik [ 2018-11-22 ] | |||||||||
|
fire-and-forget question is for ratzpo. As far as buildbot-approach goes, I don't think it'll be much of the duplication. One only needs to allow tarbake to be triggered by the "3.0" branch (better make it a variable, similar to DEVELOPMENT_BRANCH). And inside the tarbake build script: if branch is 3.0, pull 10.2 server and use 3.0 commit as specified, configure and build normally. | |||||||||
| Comment by Elena Stepanova [ 2018-12-03 ] | |||||||||
|
ratzpo wanted it to be assigned to him, so I'm re-assigning. For the time being I have set up the tests in buildbot (temporarily, until the solution from ratzpo is in place). Indeed, it did not require any duplication, because tarbake did not do anything meaningful for connectors branches (I thought it did, and we would have to have two tarbakes). In fact, tarbake was just starting for connectors trees, fetching sources and failing as soon as it tried to build the source package. Now I've made it to do what's required in the scope of this task for 3.0 branch, and bail out on other connector-c branches without attempting a build. The basic logic is this:
There are also some changes which make 3.x a logical equivalent of 10.2+, as we rely on the branch name to define the test behavior in several places. I haven't made the connector branch a variable like DEVELOPMENT_BRANCH, because I thought we might want to run these tests for more than one branch at once, e.g. 3.0 and 3.1. We can, however, make it a list-like if needed. Note: Maybe even better solution would be not to trigger tarbake for connector-c branches unless they fall in the area of our interest, but it requires a little more than doStepIf, because if we do so, the tarbake compilation is _skipped, the whole tarbake test passes, and it triggers a bogus test run with whatever previous tarbake the slave had._ Anyway, since it's supposed to be a temporary solution, I didn't try to bring it to a long-term perfection. Here is a test run on 3.0 (forced): | |||||||||
| Comment by Marko Mäkelä [ 2019-10-10 ] | |||||||||
|
Most recent occurrence: main.tls_version was broken in 10.4 because of a libmariadb change that appeared to work in 10.2 and 10.3. 10.4 is different, because it is the first branch to use WolfSSL for cmake -DWITH_SSL=bundled. And again, Windows caught the bug, because other platforms use -DWITH_SSL=system. Temporary workaround: In the merge to 10.4, I used an older libmariadb commit. | |||||||||
| Comment by Sergei Golubchik [ 2021-03-30 ] | |||||||||
|
it doesn't make sense to spend buildbot resources on running tests that nobody looks at. |