The depth code doesn't work if the branch doesn't exist in the main repo
mirror and only the remote.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The rysnc of 20,000 files (650MB) onto the nas is slow taking ~3 minutes
at idle and worse at load. This is due to the number of files which
is a pain point for NFS. This piece of the build is also a bottleneck
since the rest of a build depends on it happening.
If we switch to zstd compressed tar, it takes 2.49s. Other compression
methods were much slower but zstd seems 'accptable' and speeds things
up too.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
By not syncing all the history is is possible to save some time/space
in the checkout process since we never use this data. This reduces data
from 650MB to 400MB or with the tarball, 416MB to 55MB.
The logic for the commands needs to be tweaked to handle this and as
written it can't work in non-HEAD revision case but that isn't a commonly
used situation.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Both releases are missing an important patch that changes the displayed
version from dev to the appropriate release number.
This is confusing to the user and probably breaks some assumptions in
some scripts.
Ideally, the tags should have been moved with those patches applied to
their respective branch but that is not a git best practice so we're
stuck with this "hack" instead.
3.3.x releases aren't impacted as they got the patch applied.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
honister and 1.52 Bitbake branch were recently released, so let's build
those too.
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The auh.yoctoproject.org domain is no longer used and cannot be
validated.
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In addition to the testresult json, testimage class now also
provides the testimage task log and qemu console output log
which can be useful for debugging test failures or
even checking qemu test runs when failures did not happen.
Rather than duplicate specific file/folder names, let's copy all
that is available, and define what is published in the testimage
class itself (with appropriate folder structure if/when needed).
At the moment there's just three files, and they are copied into
folders named after image names, so there's no clutter or risk
of mixing them up with unrelated logs.
[YOCTO #14518]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is not guaranteed to build or work otherwise, and causes
update failures in unrelated recipes when building for musl for instance.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Host data is collected on failure by default. List the collected files
in the index.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
data collection on failure is enabled by default.
Collect all host stats files created.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
summarize_top_output.py is used to summarize the top
output that is captured during autobuilder intermittent
failures.
Use the script to summarize the host top output and
publish the summary that is created instead of
the raw logfile.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Make sure that https://docs.yoctoproject.org/current will always link
to the most recent release documentation.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The default behavior is to look for a bitbake command,
which fails and produces a confusing output of [-1:].
[YOCTO #14208]
Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a column "Host Data" to publish the host data collected.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
collect-data template generates host_stats files which are collected.
All files are published, file names are determined by the contents:
- Files that contain "top" output are named host_stats_<number>_top.txt
- host_stats_<number>.txt otherwise
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Build Sphinx docs for all versions newer than yocto-3.1.5 inclusive.
Integrate suggestions from Quentin Schulz and Nicolas Dechesne.
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The branches exist now, let's publish the corresponding docs.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use for loop to avoid repeating the same pattern over and over.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Line buffering (bufsize=1) is unavailable with binary mode so use unbuffered
mode instead. This fixes python runtime warnings.
[YOCTO #14093]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
run-docs-build rebuilds the entire doc website, so when we rsync the
output, we need to delete files no longer needed, this is especially
important when we move/rename pages, to avoid stale content.
Using rsync with "wildcards" was a problem in case a file/folder is
removed in the output dir, it won't be deleted.
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Learn from the previous experiments and add meaninful shortnames and
descriptions to work around the 50 char name limit.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a script which from the exit code determines if a build target is present
in the configuration. The autobuilder can use this to determine whether to
execute the target at all or whether to skip it.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This adds systemd and pam related recipes to upstream checks and devtool-driven updates.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The script is suboptimal in many ways but is a start and gives us something to test
and improve upon.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Michael Halstead has confirmed this.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since https://lists.yoctoproject.org/g/yocto/message/50282 was merged in
autoupgrade-helper git repo, the python script isn't called
upgradehelper.py anymore but upgrade-helper.py for consistency sake.
Let's update the run-auh script so that it's still working.
Signed-off-by: Quentin Schulz <foss@0leil.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sadly, many maintainers do not act on AUH mails in a timely manner
(or do not act at all). Sending these emails to oe-core list as well
will allow other people to pick them up, and ease up the path
to doing recipe version maintenance.
Also, recently the amount of outdate recipes has been greatly reduced,
so there should not be too many of those emails each month.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On stable release branch builds, it will clone "master" since comparebranch
is None. It will then fail to push since there is already a dunfell
branch upstream with changes on which it needs to rebase on top of.
The change to use shallow clones significantly increases this problem.
To fix this, fall back to cloning basebranch by name, then master
if it doesn't exist.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The existing checksum files were encoding full paths. This patch changes
this to use just the filename which allows relocation of the directories
and is more appropriate for sharing over http.
Signed-off-by: Vineela Tummalapalli <vineela.tummalapalli@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows automating its setup and execution on all autobuilder worker machines;
previously there was a static setup on a dedicated machine, which wasn't
great from maintenance perspective.
To use:
scripts/setup-auh target_dir
scripts/run-auh target_dir
(run-auh can be run several times in a directory that
was previously set up)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We were mistakenly doing a force push if the branch was in either
BUILD_HISTORY_FORKPUSH or BUILD_HISTORY_DIRECTPUSH.
Now we force push for branches in BUILD_HISTORY_FORKPUSH, regular push
for branches in BUILD_HISTORY_DIRECTPUSH, and no push if the branch is
in neither list.
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This code was copy/pasted but in this case the variables should
be called "compare", not base.
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The buildtools path contains "../" which may not resolve correctly by the
shell if the final directory doesn't exist. Avoid this by using abspath()
on the expression straightaway.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Allow the workername to be passed into the script. This is to allow future
buildtools tarball support based upon the worker.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This fixes failures on the buildperf workers which do early cleanup of build
directories.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are several issues:
* New branches don't currently have git regression history
* The regression tool errors if there isn't anything to compare against
To fix this, create a branch with history and only generate a regression
report if there are commits to compare against.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous fixes requires the user to set "no-layer-add"
for a repo and then use ADDLAYER to insert the sub-repos
(e.g., meta-openmbedded/meta-oe) as a two-part process.
This means that you would also have to specify that flag
if a repo that is a layer with dependencies is in the
list so that it can be inserted in the correct order later
via ADDLAYER to avoid parsing problems. This fix allows
for specifying a NEEDREPOS with the subdirectory of the
target layer (e.g., meta-openembedded/meta-oe) so that
there is no need for the "no-layer-add" followed by
ADDLAYER combination. The entire meta-openembedded
repo would be moved into place, and the sublayer added
to bblayers.conf.
Signed-off-by: Thomas Goodwin <btgoodwin@geontech.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The preceeding errors that would be shown should be enough to
identify the problem since it would have been a problem
running bitbake-layers add-layer, indicating a misconfiguration
of config.json.
Signed-off-by: Thomas Goodwin <btgoodwin@geontech.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The return value from bitbakecmd was not being returned when
errors occurred which allowed shared-repo-unpack to succeed
despite the failure. This fix changes to check_call and a
try-catch when attempting to add repos that fail for whatever
reason during add-layer, like a missing conf/layer.conf at
the top level or a previously-added layer breaks parsing
because of missing dependencies.
Signed-off-by: Thomas Goodwin <btgoodwin@geontech.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Affects sumo since that doesn't have oe-selftest parallelism. thud/master create
these in a different location so don't see the issue.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we now have functional buildhistory repository functionality,
generate buildhistory-diff output for builds where its enabled.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently there was no way to override an existing extra vars
assignment, which meant BB_NUMBER_THREADS was impossible to change.
This adds code to allow the higher override of a value to override
the other settings which makes the code function more as a user
would expect.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently it was being placed a directory level too high and hence
was being ignored.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This ensures that release branch performance build tests work on the correct
branch and that comparisions between mut+master and master-next+master
start to work correctly. It also ensures reports for the current
revision are generated even if later revisions are built.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The shell script can't access the config.json data easily, convert
from shell to python so that we prepare the way for further enhancements.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This makes the build performance code behave similarly to the other
results publishing code using the standard location.
Also tweak the report names so they sort.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need the final logging to show which command steps contain errors so print
failing commands but allow the code to continue and show the final log output.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This ensures the builds get as far as they can when there is failure rather
that stopping at the first sign of one. This means caches are hotter and
allows for faster respins, at the cost of the failure being lost in longer
logs.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This should further protect us against contamination between different build directories
as old build directory paths should no longer exist.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is no current mechanism to reference the 'builddir' within the config.json,
so add HELPERBUILDDIR for this purpose.
Use this to set SSTATEDIR for nightly-bringup, meaning sstate arefacts should be
shared for use between the different oe-selftest threads, speeding up builds.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SSTATEDIR was accidentally using getconfiglist instead of getconfigvar which
meant it couldn't be unset. Fix to use var so the values in config.json work
as intended.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Many of the distros we use have sendmail in /sbin or /usr/sbin
which may not be in the path for non-interactive users. Handle
this in the script to avoid failures where tests work but the
real QA email fails.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add in the support to publish images into the designated path.
BSP packages of the previous build will be cleaned up before
new BSP packages are copied over. This ensures the previous
image will not be retained and causes conflicts before image
is loaded into x86_64 (MTURBOT64) hardware.
Signed-off-by: Aaron Chan <aaron.chun.yew.chan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[RP: Minor tweaks made to adpat to buildbot and option naming
Fixed shared-repo-unpack for publishing when no cache-dir supplied]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The new buildbot code can directly monitor the logfiles itself so
we need to be able to optionally stop echoing onto the console.
Add missing flush() calls and print the command being used and logfile
so its clear what is happening on stdout too.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch fixes the "Collection Error during parsing layer conf"
when a parent layer is accidentally added before depend layers.
When removing layers from bblayers, we should not be following
the same sequence of adding the layers, it should be done in a
reversed order. This is an assumption that the layers have their
dependent layers added before the parent layers are added.
In general, the parent layer require to be remove first before
its child dependencies layers.
Signed-off-by: Aaron Chan <aaron.chun.yew.chan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Testing this code is becoming increasingly problematic. This allows
ABHELPERTEST to be set from the environment and means the script will
still create directories and configuration files but it will not execute
anything, just print what would be executed.
This allows faster validation of changes to the configurations/code.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove the code disabling it
* Move to a non-shared directory by default (but still support absolute pathnames
if wanted)
* Use shallow clones by default for speed
* Allow force pushing 'fork' mode branches
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Usage is documented in README and an example, local-example.json is
included.
Also clean up the parameter to loadconfig() as its actually not needed.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We want to be able to use data expansion/variable substitution
in most variables so convert to use the utils API for this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code clearly won't scale without some kind of variable substitution/
variable expansion mechanism, so add one.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This means making the configuration generation conditional, the error
reporting conditional and allowing non bitbake commands.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
tee hides the exit code of the pipeline. Instead use subprocess to write out the logfile.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As the mv commands use a filename wildcard we need to tell check_call to
execute through the shell so that the wildcard is expanded, rather than
treat as a file name.
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
This ultimately makes the code more complex as not all buildsets on the
Yocto Project autobuilder are named with that prefix.
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>