ReleaseEngineering/Contribute: Difference between revisions
No edit summary |
|||
Line 12: | Line 12: | ||
If you want to know more you can go to our [[ReleaseEngineering#Documentation|documentation]] page. | If you want to know more you can go to our [[ReleaseEngineering#Documentation|documentation]] page. | ||
== Using Tupperware == | |||
The quickest and easiest way to get up and contributing with Release Engineering is by running [[ReleaseEngineering/Tupperware|Tupperware]] | |||
Great for keeping an unpolluted development environment, testing patches and enabling new contributors to join the effort by lowering the barriers to entry (being one of the biggest deterrents to potential new contributors). | |||
Vagrant is used as a quick and easy way to provision the docker apps and make the setup truly plug n' play. The current setup only has a single Vagrantfile which launches BuildAPI and BuildBot, with their dependency apps RabbitMQ and MySQL. | |||
== Setup a machine to run different jobs == | == Setup a machine to run different jobs == |
Revision as of 18:42, 23 June 2014
This page should help people on how to set themselves up and contribute to Release Engineering.
Introduction
In release engineering we run different types of jobs for developers and releases. When a developer makes a change to the source code we create builds and against those builds we run unit tests and performance tests (a.k.a talos jobs).
To tell the different machines what type of job to run we use buildbot which is installed on the master machines. Those master machines tell the different machines (a.k.a. slaves) which jobs to do.
To make sure that all of our machines are setup the same way we use puppet and OPSI most places.
We also have to make sure that our machines are staying up by installing nagios.
If you want to know more you can go to our documentation page.
Using Tupperware
The quickest and easiest way to get up and contributing with Release Engineering is by running Tupperware
Great for keeping an unpolluted development environment, testing patches and enabling new contributors to join the effort by lowering the barriers to entry (being one of the biggest deterrents to potential new contributors).
Vagrant is used as a quick and easy way to provision the docker apps and make the setup truly plug n' play. The current setup only has a single Vagrantfile which launches BuildAPI and BuildBot, with their dependency apps RabbitMQ and MySQL.
Setup a machine to run different jobs
To run a build or a test job we setup our machines with tools like python, mercurial and wget. If you go to the Reference Platforms page you can find the steps taken to set each one of our machines up. The problem right now is that reading the instructions has too much setup work for managing the slaves rather than just getting the jobs to run.
As a way to help people check that their machine can run certain types of jobs we are running this experimental project that gets the packages you need and install it.
Run jobs
How to run a build job
Right now this is not easy for you to discover as the steps followed are intertwined inside of our buildbot custom libraries.
At some point we will have some scripts for you to run on mozharness but until then you can reach the build pages and figure it out there.
How to run a unit test or performance job
Right now this is not easy for you to discover as the steps followed are intertwined inside of our buildbot custom libraries.
At some point we will have some scripts for you to run on mozharness but until then you can read this wiki page.
How to run an L10n repackage
Right now this is not easy for you to discover as the steps followed are intertwined inside of our buildbot custom libraries.
At some point we will have some scripts for you to run on mozharness but until then you can read this wiki page.
Buildbot
Setup a personal development buildbot master
You'll want to clone our buildbot-configs (default branch) from here: http://hg.mozilla.org/build/buildbot-configs/
hg clone http://hg.mozilla.org/build/buildbot-configs
Then follow the instructions here How To Setup a Personal Development Master to get set up with a master.
You can also create a local instance of a build slave for testing your work, you'll need to install buildbot-slave in your virtualenv
pip install buildbot-slave
Then create an instance of a buildslave and configure it to connect to the master. You'll want it to match the slave names we use in our configs (test or builder)
Come find us in irc.mozilla.org channel: #releng with your questions, we want you to be able to successfully work on code and submit useful patches so don't be afraid to ask about whatever is blocking you.