ERP 2.50:TryServer
Contents |
Introduction
The try server is an easy way to test a branch or a patch without actually pushing the patch/branch into the core erp/devel/pi repository. Your code will go through the same tests as the main integration process. This allows you to run a simulated integration process, useful to guarantee that the real integration process remains healthy.
To use try server, you need to be a Openbravo ERP core developer with Mercurial push credentials in code.openbravo.com.
Usage
To submit your commits to the try server:
hg push -f https://code.openbravo.com/erp/devel/try
And to see the results monitor the try tab in our build farm.
For convenience you can add the following lines to your $HOME/.hgrc:
[paths] try = https://code.openbravo.com/erp/devel/try
So sending your branch for testing will be as simple as:
hg push -f try
Workflow
- A developer pushes a branch to the try repository.
- The try server will start running a series of tests, in the following order and rules:
- Every block is run in parallel, so 2 jobs per block.
- One block won't be run if the previous block is not successful. The exception is the try-api job, which checks if the API is broken or not. The rationale behind this is simple: in order to make this job succeed you would have to modify the api-checks repository, and this has to be done only when the commits reach erp/devel/pi. This try-api job, even if it fails, will help you plan your final push to erp/devel/pi.
Click on any of the jobs of the try tab to see a description of what it does.
Queue
There is one try server for all the developers. This means that sometimes you'll have to wait, and other times you'll be the first in the queue. It's a serial system. If you make a push, it enters into a queue, and once the jobs with higher priority finish (pushed before yours), your tests will start.
FAQ
- But try does not look related to my repository, I have a completely new and different branch. Will it work?
As long as your branch is related to erp/devel/pi you can use the try server. Just push your commits and it will just work.
- How does this work?
Every time a developer pushes commits using hg push -f this creates a new head in the repository. This head becomes the tip of the repository. This is how this simple mechanism works.
TO-DO list
These are some pending features to be implemented:
- Receive e-mail notifications when your build starts and ends.
- Expose the queue publicly so that the developers can estimate when their build will start,