The Yocto Autobuilder: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 3: Line 3:
The autobuilder '''[https://autobuilder.yoctoproject.org/typhoon/#/console Main Console]'''.
The autobuilder '''[https://autobuilder.yoctoproject.org/typhoon/#/console Main Console]'''.


The Yocto AutoBuilder is a buildbot (nine) based autobuilder implementation that can be used to build out and test custom distros utilizing OE-Core (either bare or through the poky repository)
The Yocto AutoBuilder is a buildbot (currently 3.x) based autobuilder implementation that can be used to build out and test custom distros utilizing OE-Core (either bare or through the poky repository)


The source code can be downloaded from the '''[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder2/ yocto-autobuilder2]''' and '''[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder-helper/ yocto-autobuilder-helper]''' repositories.
The source code can be downloaded from the '''[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder2/ yocto-autobuilder2]''' and '''[http://git.yoctoproject.org/cgit/cgit.cgi/yocto-autobuilder-helper/ yocto-autobuilder-helper]''' repositories.
Line 9: Line 9:
For details on the design and configuration of the AutoBuilder, refer to the documentation in those repositories.
For details on the design and configuration of the AutoBuilder, refer to the documentation in those repositories.


The yocto-autobuilder maintainer is [[User:Rpurdie | Richard Purdie]]. All patches to the yocto-autobuilder2 should be sent to yocto@yoctoproject.org with "[yocto-autobuilder2]" in the Subject line. Please CC: richard.purdie@linuxfoundation.org.
The yocto-autobuilder maintainer is [[User:Rpurdie | Richard Purdie]] (RP on IRC). All patches to the yocto-autobuilder2 should be sent to yocto@yoctoproject.org with "[yocto-autobuilder2]" in the Subject line. Please CC: richard.purdie@linuxfoundation.org. The hardware is maintained by the Linux Foundation on behalf of the Yocto Project and for infrastructure issues, please contact Michael Halstead (halstead on IRC).


'''NOTE: please use autobuilder2''', autobuilder is dead [1], buildbot eight is dead.
'''NOTE: please use autobuilder2''', autobuilder is dead [1], buildbot eight (aka 0.8.x) is dead.


[1] http://git.yoctoproject.org/cgit.cgi/yocto-autobuilder/commit/?id=1369545f9819537535e4ab6ebeb49e7b173a8366
[1] http://git.yoctoproject.org/cgit.cgi/yocto-autobuilder/commit/?id=1369545f9819537535e4ab6ebeb49e7b173a8366
=== Scheduled Builds ===
The current active schedule can be seen in [https://git.yoctoproject.org/yocto-autobuilder2/tree/schedulers.py#n446 schedulers.py].
The scheduled builds are:
* a-quick on master every night on Monday to Saturday
* a-full on master every Sunday night
* metrics check each morning
* check-layer for a number of meta-layers every night (master branch)
* check-layer for a number of meta-layers one each night covering all active releases (spread over a week)
* build performance checks 4 times a day on two distros
* Auto Upgrade Helper twice a month
* Doc rebuild on all branches for any commit that changes docs


=== Starting Builds ===
=== Starting Builds ===
Line 23: Line 37:
If making a release build, be sure to check all three check boxes, "Do we want to save build output?", "Generate a release?" and "Send QA alert emails?". The release milestone, release number and release rc number need to be filled in as appropriate too.
If making a release build, be sure to check all three check boxes, "Do we want to save build output?", "Generate a release?" and "Send QA alert emails?". The release milestone, release number and release rc number need to be filled in as appropriate too.


The autobuilder can run multiple builds in parallel so builds can be queued as needed but please be sensible. The autobuilder users are usually around in #yp-infra on freenode which can be useful to schedule builds between us.
The autobuilder can run multiple builds in parallel so builds can be queued as needed but please be sensible. The autobuilder users are usually around in #yp-infra on IRC which can be useful to schedule builds between us.


The autobuilder maintenance window is morning for US PST on Fridays and builds should not be run over this period to allow weekly maintanance on the worker distros to be carried out.
The autobuilder maintenance window is morning for US PST on Fridays and builds should not be run over this period to allow weekly maintanance on the worker distros to be carried out.


Autobuilder output for non-release builds is available at: https://autobuilder.yocto.io/pub/non-release/ and for release builds:  https://autobuilder.yocto.io/pub/release/.
Autobuilder output for non-release builds is available at: https://autobuilder.yocto.io/pub/non-release/ and for release builds:  https://autobuilder.yocto.io/pub/releases/.
 
=== Autobuilder Build User Guidelines/Conditions of Use ===
 
If you have the ability to run autobuilder builds there are some things you need to be mindful of:
 
* It is expected that normally users should have resolved minor issues and done some testing before using the project infrastructure.
* You are expected to triage the results of your own build
* If you see unexplained failures, it is expected that bugs are filed for these, or where there are existing bugs, the bug should be updated. Please include which host/worker the build failed on. This allows triage to know which issues are occurring, their frequency and patterns like which host(s) they occur on.
* The maintenance window is on Friday mornings US pacific time. Please do not start builds until maintenance is complete or run builds which wouldn't finish before maintenance is due to start. Michael can start a build when maintenance is completed if you let him know.
* There is a rough priority hierachy of builds where master and stable branch release builds have priority. Avoiding builds during release periods if possible is helpful.
* Being present on #yp-infra on IRC is helpful and infrastructure/autobuilder discussion may happen there
* If a partially complete build is no longer useful for some reason, please stop it to allow the resources to be used by others


=== Resources ===
=== Resources ===
Line 38: Line 64:
* [[Frequently Asked Yocto Autobuilder Questions]]
* [[Frequently Asked Yocto Autobuilder Questions]]
* [[Entropy on Autobuilders]]
* [[Entropy on Autobuilders]]
 
* [https://wiki.yoctoproject.org/wiki/images/0/04/Yocto_Project_Autobuilder.pdf] Overview pdf
=== AutoBuilder Automated Testing ===
 
The AutoBuilder is able to execute automated testing too when the proper configuration is added. The AutoBuilder relies on what the Yocto Project exposes as automated test tools and it doesn't include support for directly executing tests. The AutoBuilder has been used for test execution (runtime, selftests) in the Yocto Project long before it was chosen as the automated test framework over LAVA.  
Instructions on how to add tests to the AutoBuilder [[AutoBuilder/Adding Automated Tests|can be seen here]].

Latest revision as of 11:07, 30 July 2024

The Yocto AutoBuilder

The autobuilder Main Console.

The Yocto AutoBuilder is a buildbot (currently 3.x) based autobuilder implementation that can be used to build out and test custom distros utilizing OE-Core (either bare or through the poky repository)

The source code can be downloaded from the yocto-autobuilder2 and yocto-autobuilder-helper repositories.

For details on the design and configuration of the AutoBuilder, refer to the documentation in those repositories.

The yocto-autobuilder maintainer is Richard Purdie (RP on IRC). All patches to the yocto-autobuilder2 should be sent to yocto@yoctoproject.org with "[yocto-autobuilder2]" in the Subject line. Please CC: richard.purdie@linuxfoundation.org. The hardware is maintained by the Linux Foundation on behalf of the Yocto Project and for infrastructure issues, please contact Michael Halstead (halstead on IRC).

NOTE: please use autobuilder2, autobuilder is dead [1], buildbot eight (aka 0.8.x) is dead.

[1] http://git.yoctoproject.org/cgit.cgi/yocto-autobuilder/commit/?id=1369545f9819537535e4ab6ebeb49e7b173a8366

Scheduled Builds

The current active schedule can be seen in schedulers.py.

The scheduled builds are:

  • a-quick on master every night on Monday to Saturday
  • a-full on master every Sunday night
  • metrics check each morning
  • check-layer for a number of meta-layers every night (master branch)
  • check-layer for a number of meta-layers one each night covering all active releases (spread over a week)
  • build performance checks 4 times a day on two distros
  • Auto Upgrade Helper twice a month
  • Doc rebuild on all branches for any commit that changes docs

Starting Builds

For autobuilder access, contact Michael Halstead <michael@yoctoproject.org> as an account is needed to start builds. These are usually available to stable branch maintainers or in special cases other layer maintainers for running builds on the project infrastructure.

To start builds, from the main console you'd usually select 'a-quick' or 'a-full' from the top list of builders. If not logged in, login using the link on the top right of the page. You should then see a button "Start a-full build" or "Start a-quick build" which you can press. This opens a fairly complex form but in most cases you can use the "Release Shortcut Selector" to pre-populate the form with a given release's defaults. For a stable branch build on a test branch, you may then want to change the poky repository to point to poky-contrib and the branch to be the one you want to test. You should enter a reason for the build in the box at the top of the form. This is added to the BuildLog and us used by SWAT to decide what to do with bugs. When the form is correct, click "Start Build" at the bottom of the form.

If making a release build, be sure to check all three check boxes, "Do we want to save build output?", "Generate a release?" and "Send QA alert emails?". The release milestone, release number and release rc number need to be filled in as appropriate too.

The autobuilder can run multiple builds in parallel so builds can be queued as needed but please be sensible. The autobuilder users are usually around in #yp-infra on IRC which can be useful to schedule builds between us.

The autobuilder maintenance window is morning for US PST on Fridays and builds should not be run over this period to allow weekly maintanance on the worker distros to be carried out.

Autobuilder output for non-release builds is available at: https://autobuilder.yocto.io/pub/non-release/ and for release builds: https://autobuilder.yocto.io/pub/releases/.

Autobuilder Build User Guidelines/Conditions of Use

If you have the ability to run autobuilder builds there are some things you need to be mindful of:

  • It is expected that normally users should have resolved minor issues and done some testing before using the project infrastructure.
  • You are expected to triage the results of your own build
  • If you see unexplained failures, it is expected that bugs are filed for these, or where there are existing bugs, the bug should be updated. Please include which host/worker the build failed on. This allows triage to know which issues are occurring, their frequency and patterns like which host(s) they occur on.
  • The maintenance window is on Friday mornings US pacific time. Please do not start builds until maintenance is complete or run builds which wouldn't finish before maintenance is due to start. Michael can start a build when maintenance is completed if you let him know.
  • There is a rough priority hierachy of builds where master and stable branch release builds have priority. Avoiding builds during release periods if possible is helpful.
  • Being present on #yp-infra on IRC is helpful and infrastructure/autobuilder discussion may happen there
  • If a partially complete build is no longer useful for some reason, please stop it to allow the resources to be used by others

Resources