As you may have noticed, a new tool has arrived in the OCA landscape: runboat.
It is a runbot replacement that is specially tailored to OCA needs.
What was runbot and why we can do better?
Runbot used to be tool that creates temporary Odoo test environments and makes them available for testers on each branch and pull request.
It is a very important part of our infrastructure that allows non-technical people to participate in the review process without requiring the expertise to install Odoo and the OCA addons locally.
Runbot was created by Odoo SA and was deployed for OCA with some adaptations.
Runbot evolved in a direction that made it more complex and less suitable for the needs of OCA. Early experiments by Alexandre Fayolle showed a migration to the latest version would be non trivial, while not necessarily resolving the performance and maintenance issues that had accumulated over time.
So a new tool was born, to cater specifically to the OCA requirements.
Runboat: test anything in no time!
The key feature of our new Runboat is the following: it prepares Odoo environments from GitHub commits, and once they are initialized, they are kept in a dormant state, ready to start in seconds when needed for testing.
This way we can have a very large number of environments ready to use (up to 10 000 on our current machine), so there is a great chance that the branch you want to test is readily available and there is no wait for functional people wanting to contribute. Indeed, since the Odoo database corresponding to each commit has been prepared in advance and then the instance stopped, it can be restarted in a few seconds.
How does it work?
If you are curious about the technology behind it, the runboat source code is available on GitHub, and this twitter thread highlights some tools used to create it.
It is currently enabled for branches 10 to 15. And the test environment corresponding to each PR or commit is linked as part of the GitHub checks (look at the red cross or green check mark).
Soon, links to runboat will be added to the README.md files of all repos for branches 13, 14 and 15.
You can also open it for a repo and Odoo version with a link like this: https://runboat.odoo-community.org/builds?repo=oca/mis-builder&target_branch=14.0
It is currently not enabled for branches older than 10, although in principle it should work for 8 and 9 too. If you need it for those versions and want to help make it happen, I’ll be happy to transfer our knowledge. Do not hesitate to get in touch.
Bye bye runbot
Since runboat is proving to work very well and is much more resource efficient than runbot, while at the same time providing a better user experience, we can now shutdown runbot, in order to save on OCA server costs.
With the help of Alexandre Fayolle, we are going to do that in the coming weeks, so prepare to say goodbye to runbot!
Most existing links to runbot.odoo-community.org will then redirect to runboat.
Help us get it better
In the meantime, if you notice issues do not hesitate to get in touch by @ mentioning me on the PRs for which the runboat build would fail and you don't readily understand why or how to fix it. This will also help prepare for the move from Travis to GitHub actions which we are also planning in the first part of 2022.
Best regards, and happy testing!
Stéphane Bidoul
Cover Photo by Mikael Stenberg on Unsplash