system for the community longevity, an open build ensuring … · 2020-05-04 · no buildbot...
TRANSCRIPT
![Page 1: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/1.jpg)
Ensuring MariaDB Server’s longevity, an open build system for the communityVlad BogolinDeveloper @MariaDB Foundation
MariaDB DayBrussels 02 February 2020
![Page 2: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/2.jpg)
Why do we need continuous integration and testing?
2Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 3: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/3.jpg)
Benefits of continuous integration and automated testing
● Regularly integrating small code changes into the MariaDB server
● Run tests after each change○ Tests can be run on multiple platforms, ensuring that code changes
made on one platform do not cause failures on other platforms○ Lowers the risk of test failures involved with each push
3Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 4: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/4.jpg)
Benefits of continuous integration and automated testing (2)
● Gives developers immediate feedback on their work
● Automated package management on multiple platforms
4Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 5: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/5.jpg)
Challenges of continuous integration and automated testing
● The process can be repeated as frequently as available computing resources allow:○ Hardware availability- different architectures require different
physical machines
○ Time limitations - developers want to see the results as soon as possible
5Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 6: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/6.jpg)
How testing is done for the MariaDB server?
6Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 7: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/7.jpg)
● mysql-test-run is the standard testing toolkit for MariaDB Server
● Run queries against one or more servers and compare their output
to the expected one
● This checks both behaviour and data consistency
7
MariaDB server testing
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 8: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/8.jpg)
Continuous Integration and testing for MariaDB
8Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 9: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/9.jpg)
9
Buildbot overview
Ensuring MariaDB Server’s longevityhttps://mariadb.org
*Picture used from buildbot.net
![Page 10: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/10.jpg)
● changes/repository
○ Any change that occurs in the source code (commit)
● build master
○ The process that checks for changes and schedules builds
● worker
○ The environment used for testing which is run on a physical machine
● build
○ The actual configuration that is tested
10
Buildbot keywords
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 11: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/11.jpg)
● Uses Docker
● Each worker is a docker container running on a host machine
● The worker process is started by the build master when a change
is detected
● The build environment is defined in dockerfiles
11
MariaDB buildbot configurations
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 12: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/12.jpg)
● Benefits of using docker
○ Dockerfiles provide an easy way of re-creating a testing
environment
○ No buildbot related configurations are necessary on the physical
machines - only the build master needs to be configured
■ Easy to add new hardware
● Challenges
○ Docker needs to be accessed remotely - ensure TLS authentication
12
MariaDB buildbot configurations (2)
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 13: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/13.jpg)
● Custom templates for main dashboards
13
MariaDB buildbot customizations
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 14: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/14.jpg)
14
MariaDB buildbot - buildbot.mariadb.org
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 15: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/15.jpg)
● Platforms:
○ x86_64, Power and ARM gracefully donated by
15
MariaDB buildbot - current platforms
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 16: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/16.jpg)
● Operating Systems
○ Debian, Ubuntu, CentOS, RHEL-7, Fedora, OpenSUSE, Windows
16
MariaDB buildbot - current operating systems
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 17: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/17.jpg)
● Running tests for pull-requests as well. Contributors can check the
correctness of their patches directly on GitHub!
17
MariaDB buildbot - GitHub integration
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 18: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/18.jpg)
● More build configurations, operating systems and platforms
● Gated branches
● Automated packaging
● Cross-reference tool
○ allows searching for test failures in previous test runs
18
MariaDB buildbot - coming soon
Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 19: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/19.jpg)
Questions?
19Ensuring MariaDB Server’s longevityhttps://mariadb.org
![Page 20: system for the community longevity, an open build Ensuring … · 2020-05-04 · No buildbot related configurations are necessary on the physical machines - only the build master](https://reader030.vdocuments.net/reader030/viewer/2022041019/5ecd543e7b8a796bf06b97ec/html5/thumbnails/20.jpg)
20
Sponsors
Ensuring MariaDB Server’s longevityhttps://mariadb.org