|
|
Line 36: |
Line 36: |
| | http://etherpad.mozilla.com:9000/qas-triggered-tests | | | http://etherpad.mozilla.com:9000/qas-triggered-tests |
| |} | | |} |
|
| |
| =Proposed Design=
| |
| ==Process==
| |
| # Pulse Trigger received on build landing, contains current build id
| |
| # Trigger polling script on VM catches trigger
| |
| # Trigger polling script adds build to queue (directory full of job snippets or a single flat file) for processing.
| |
| #* Initial Proof of Concept will not include a queue.
| |
| # Queue polling script pulls the job off the queue, does two things:
| |
| ## Downloads current build and saves it off for next trigger.
| |
| ## Build saved off from last trigger will be updated and compared to expected *build id.
| |
| * Initial reporting to brasstacks, possibly email on failures
| |
| * Initial version for trunk, en_US only. Implementing OS X version first, other platforms to come very shortly thereafter.
| |
|
| |
| ==Resources already present==
| |
| * Script to install a build
| |
| * Script to update a build and do some basic heuristics for testing exists.
| |
| * Agreement from RelEng to send Pulse trigger, interim trigger already in place based on FTP scraping
| |
| * Sample code for Pulse interaction that can be adapted to our purpose.
| |
| ==Things needed now==
| |
| * Update test script needs to be able to take a particular build id for verification
| |
| * Final details on Trigger information to be decided.
| |
| * Polling script
| |
| ==Things needed eventually==
| |
| * Queuing mechanism (this will primarily be needed for L10N testing, where all locales land simultaneously and need to be queued on platform)
| |
| ** Check out celery (http://celeryproject.org/). You could run it through pulse if you want or have your own dedicated host. Then you could easily throw more slaves to process the jobs and scale. AMO and Pulse use celery. --Christian
| |
| * RelEng wants to do this in their infrastructure eventually if at all possible.
| |
| ** If not possible, we'll need a way to report directly back to RelEng
| |
| ** Not there yet, though. For now want to run it on our side to make sure of robustness before putting in critical path.
| |