Commit Graph

550 Commits

Author SHA1 Message Date
Alexis Lothoré
76c5c295b3 scripts: send_qa_email: properly compute previous tag for new major release tag
send_qa_email currently fails when dealing with release version starting a
new major, for example 5.0. This has been observed for example when trying
to generate 5.0_M1.rc1

This specific versioning makes previous tag computation method fall through
last branch which currently expects that the current release tag indeed
exists (5.0_M1), which is true when checking regression reports a
posteriori, but not in an autobuilder run (tag is added only when the
release has been "validated")

Fix tag computation for this case by getting previous release tag with git
ls-remote, instead of relying on git describe with a possibly non-existing
tag. While doing so, add a few tests about this specific case.

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-17 19:08:23 +00:00
Alexis Lothoré
c304a50283 scripts: send_qa_email: allow testing against non fixed tags
send_qa_email currently deals with tags in a "reproducible" way: despite
new versions being released on different branches, the computation of the
"reference" version for a specific input version always remain the same.

This behavior does not match perfectly real expectations: if at the some
point we get version 4.3.1 as a comparison reference for a regression
report, and 4.3.2 is released some time later, we want the next comparision
to be done against 4.3.2.

Start introducing this new behavior by allowing the tests to check returned
version against regex patterns instead of static strings, so we can for
example use wildcards on the "micro" version

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-17 19:08:23 +00:00
Alexis Lothoré
6e92359609 scripts: send_qa_email: slightly rework previous tag test
Use intermediate variables for test input/output, and print expected
output in subtest to get more info when a test fails

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-17 19:08:23 +00:00
Richard Purdie
a9233c154f scripts/run-toaster-tests: Ensure hashserve is passed to toaster
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-09 10:11:51 +00:00
Marlon Rodriguez Garcia
c4f8a45e0a script/run-toaster-test : Added new global variables needed to run test in toaster build folder
Update run-toaster-test to include BUILDDIR and TOASTER_TEST_USE_SSTATE_MIRROR which will be use in the build test in toaster

Signed-off-by: Marlon Rodriguez Garcia <marlon.rodriguez-garcia@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-08 12:06:53 +00:00
Alexander Lussier-Cullen
9291298d41 scripts/run-toaster-tests.py: run via pytest and fix environment setup
Strip quotes from directory variables as they caused path errors.
Add environment variable for the toaster artifact directory.
Migrate from tox and django tools to using pytest.
Install python module requirements from the script as this is no
longer handled by tox.

Signed-off-by: Alexander Lussier-Cullen <alexander.lussier-cullen@savoirfairelinux.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-06 22:37:42 +00:00
Michael Halstead
1c3a588fc9 scripts/sstate-clean: run by cron on the autobuilder
Publish what cleans up the public SSTATE to help with debugging.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2023-11-29 16:18:12 -08:00
Alexander Lussier-Cullen
e1289afb9e scripts/run-toaster-tests.py: Add environment variables
Pass the toaster test environment SSTATE_DIR and DL_DIR for faster
builds and TOASTER_DJANGO_TMPDIR to remove problematic temp files
from the root level '/tmp' directory.

Signed-off-by: Alexander Lussier-Cullen <alexander.lussier-cullen@savoirfairelinux.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-23 15:23:02 +00:00
Michael Halstead
7914c9f8ec scripts: basic clean up of releases/layer parser
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2023-11-20 19:45:47 -08:00
Michael Halstead
aadcd5b0a4 scripts: releases parser handle version sorting correctly
Sort versions as if we used semantic versioning.
Include updates for the 4.3 release as well.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2023-11-17 13:23:42 -08:00
Trevor Gamblin
3ac995a39f patchtest: add selftest runner
Add a runner that installs the patchtest dependencies in a Python venv
and then starts patchtest's selftests.

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-15 16:05:17 +00:00
Alexander Lussier-Cullen
c12157b568 Add toaster test builder
Add a toaster test builder that runs the tox test suite using a new
run-toaster-tests script.

Signed-off-by: Alexander Lussier-Cullen <alexander.lussier-cullen@savoirfairelinux.com>
CC: richard.purdie@linuxfoundation.org
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-15 16:05:17 +00:00
Michael Halstead
aea946ada7 scripts: prepare data for display on www.yoctoproject.org
These produce the files at https://docs.yoctoproject.org/parsed-layers.json
and https://docs.yoctoproject.org/releases.json.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2023-11-03 13:03:27 -07:00
Ross Burton
8c4df34c80 scripts/run-patchmetrics: pull before updating metrics
Do another git-pull in the metrics repository before updating the
metrics, in case other metrics jobs running in parallel have updated the
repositories since they were cloned.  There will always be possibility
of racing metrics jobs, but this should reduce the chance of it
happening.

An alternative would be to commit and then rebase before pushing, but I
fear that a git-merge could produce invalid JSON and we'd have to
manually fix up the repository.  In my opinion, a wasted metrics run is
preferable to potentially corrupted repositories.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-03 15:06:35 +00:00
Ross Burton
97c6c18708 scripts/run-cvecheck: pull before updating metrics
Do another git-pull in the metrics repository before updating the
metrics, in case other metrics jobs running in parallel have updated the
repositories since they were cloned.  There will always be possibility
of racing metrics jobs, but this should reduce the chance of it
happening.

An alternative would be to commit and then rebase before pushing, but I
fear that a git-merge could produce invalid JSON and we'd have to
manually fix up the repository.  In my opinion, a wasted metrics run is
preferable to potentially corrupted repositories.

[RP: Moved to after the bitbke invocation]

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-03 15:06:35 +00:00
Richard Purdie
e797c5f70a auh-meta-oe: Send to the openembedded-devel mailing list, not core
To do that we need a separate config file.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-03 10:57:44 +00:00
Yoann Congal
870f0435bc config.json: Move AUH from custom scripts to config.json
setup-auh and run-auh were doing what the AB config.json does:
* creating repo checkouts: Now use NEEDREPOS
* configuring bitbake env: Now use extravars

This refactoring is needed to prepare adding AUH meta-oe support.

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-11-03 10:49:02 +00:00
Ross Burton
2954d78759 Rewrite metrics-gathering scripts
Rewrite the scripts that gather the metrics to be more generic.

Extract the metrics repository cloning out so that we don't have to
repeatedly clone it.

Make the scripts parse their arguments using getopt and be more specific
about what they're passed.  In particular, this means that for the patch
review run we pass the _repository_ that we're scanning so we can do git
operations on it, and the base of the _layers_ (either a layer, or a
directory containing layers) so we know what to scan.

Be more clever when identifying what commits we need to analyse for
patch review: instead of iterating through a set randomly, we can keep
the revision list sorted and the checkout operations are a lot faster.

Remove the commit/file count metric addition as patchreview itself does
that now.

Add an explicit --push option so it's easy to test the scripts in
isolation without pushing.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-31 15:01:57 +00:00
Tim Orling
be76b6a5e4 scripts: add list-yp-compatible-layers.py
This is a handy helper script to query the Buildbot REST API to
create a list of Yocto Project Compatible 2.0 layers, as defined by
successful running of the "check-layers*" jobs.

The script only considers the 'jobs' ("Builders" in Buildbot speak) you
ask it to query.

The script looks at the latest -n successful builds for a branch that
matches from a list. The number of builds approach was used because
the property_list cannot be queried for "branch" in the "builders" API.

It looks for a "step" name pattern via a regex, with which all currently
running "check-layer" and "check-layer-nightly" jobs conform.

Once a branch has successfully been queried, it is removed from the list
in further iterations. The intent is to only find the latest passing
list of compatible layers, for each branch.

The output is a yp_compatible_layers.json file which can
be pretty printed with:

cat yp_compatible_layers.json | jq

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-29 22:40:32 +00:00
Richard Purdie
711b38598f config.json: Add patchtest build
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-26 14:22:33 +01:00
Richard Purdie
f7cac565b4 scripts/run-cvecheck: Remove branch iteration
Rather than running multiple checkouts, lets move this to the autobuilder
to handle and have it trigger the builds with the right checkouts.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 16:43:24 +01:00
Richard Purdie
cfdd2d7737 scripts/run-patchmetrics: Only monitor master branch
We only monitor the master branch for patch metrics as we can't really make
improvements to release branches.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 16:43:20 +01:00
Richard Purdie
b2f39bf490 metrics: Pass branchname to scripts
To prepapre to run the scripts per branch, pass the branchname to the scripts.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 16:25:51 +01:00
Richard Purdie
dba803bdb2 scripts/run-patchmetrics: Split out CVE checks
Split the CVE checks from the patch metrics script

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 16:22:37 +01:00
Richard Purdie
2da59d3191 scripts/run-patchmetrics: Only clone metrics if it isn't present
To prepare for splitting things up, only clone the metrics repo if it isn't present.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-23 16:18:28 +01:00
Alexis Lothoré
76c6b3644c scripts/send_qa_email: guess latest tested revision when dealing with branch
It has been observed that some regression reports generation may failed
when the comparision base is a branch (e.g master) because we can not find
any test results associated to the branch HEAD. This is especially true for
branches which often change, because not all revisions on those branch are
subject to CI tests.

To fix that, whenever we are not dealing with a release, parse the latest
tested revision in test results repository on target branch in order to
guess the corresponding revision in poky repository, so we are sure that
revisions passed to yocto_testresults_query are indeed tested and
regression report can be generated

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-04 23:39:50 +01:00
Alexis Lothoré
c70cb948c6 scripts/send-qa-email: define tests results repository url only once
Test results repository url is used at least twice, so define a constant
holding the url instead of hardcoding it multiple times

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-04 23:39:50 +01:00
Alexis Lothoré
44650c9681 scripts/send_qa_email: re-clarify base and target revisions
There are some inversions in words used to describe elements of comparison
for regression reporting: the main function of send_qa_email starts using
"base" to talk about the target revision and "compare" to talk about the
reference against which it is compared. Then later in the script, the
"base" is used as "base of comparison"/reference revision, while the
"target" branch/revision appears. This becomes quite confusing when we need
to update the script

Re-align wording to avoid confusion:
- always use "target" to talk about current branch/revision of interest
  (the newest)
- always use "base" to talk about the reference branch/revision  (the
  oldest), against which we want to compare the target revision

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-04 23:39:50 +01:00
Richard Purdie
2a5b2722d0 scripts/send_qa_email: Add missing global to allow exitcode to work
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-27 16:40:37 +01:00
Richard Purdie
5e4d2ffaae scripts/send-qa-email: Add URL of build to QA email
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 12:03:43 +01:00
Richard Purdie
9d39add273 qa_email: Ensure we set an error exit code for errors
Whilst the script needs to continue if we fail to generate a regression report,
set the exit code accordingly so our CI can flag the issue.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 11:16:39 +01:00
Richard Purdie
c0202368a1 qa_email: Add headers to the script to improve debugging
It is hard to tell which section of the code specific error messages
come from at present. Add more headers to the output so we can at
least tell which section the messages are from. It also adds some
timing information.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 11:11:01 +01:00
Alexander Kanavin
af5d072a65 auh-config: systemd now requires usrmerge
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-08-15 21:20:32 +01:00
Alexis Lothoré
d3c671d545 scripts/test_utils.py: update test after BUILD_HISTORY_DIRECTPUSH removal
Update getcomparisonbranch unit tests by removing BUILD_HISTORY_DIRECTPUSH
entry in fake configuration

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-26 16:27:11 +01:00
Alexis Lothoré
c2afe19aba scripts/utils.py: replace BUILD_HISTORY_DIRECTPUSH with hardcoded condition
It has been observed that when a new release branch is created, it is quite
easy to forget to update the BUILD_HISTORY_DIRECTPUSH variable, which leads
to failures in autobuilder like test results not being pushed.
Replace the BUILD_HISTORY_DIRECTPUSH usage with a hardcoded condition which
validates any branch in poky representing a "main" branch, i.e all branches
not ending in "-next"

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-26 16:27:11 +01:00
Alexis Lothoré
9175dbb2bb scripts/send-qa-email: print warning when test results are not stored
Tests results push command depends on basebranch and comparebranch
variables, which are computed based on config.json content. If this file is
not in sync with current release branch, tests results will be properly
stored in git directory but not pushed onto test results server. Since we
are able to detect this scenario, print at least a warning, without
breaking current build since it could be a release

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-14 17:18:04 +01:00
Alexis Lothoré
8345af15e8 scripts/send-qa-email: use logger instead of raw prints
As for other scripts in yocto-autobuilder-helper or oecore, use python
logger class instead of raw print calls to allow log level distinction

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-14 17:18:04 +01:00
Ross Burton
9d76c17891 scripts/layer-config: remove unused imports
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-13 09:38:32 +01:00
Richard Purdie
1e256e530a config.json: Separate out toolchain targets
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-06-08 11:16:43 +01:00
Michael Halstead
7539f673ee scripts/publish-artefacts: remove all reference to deprecated edgerouter
edgerouter is no longer part of meta-yocto so we removed it from the
autobuilder configuration as well.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-10 12:39:25 +01:00
Alexander Kanavin
f19a89d99e auh: publish output on https://autobuilder.yocto.io/pub/auh/
AUH itself already has an option to include the link into
its email reports; the option just needs to be enabled.

[YOCTO #15103]

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-04 16:29:15 +01:00
Richard Purdie
e185e1efde run-patchmetrics: Add mickledore
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-04-11 11:45:50 +01:00
Richard Purdie
54a2960aa8 cve-generate-chartdata: Fix syntax error
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-04-01 11:38:56 +01:00
Richard Purdie
d47f0b8c99 cve-generate-chartdata: Fix indentation
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-31 17:21:12 +01:00
Richard Purdie
3f489eb396 cve-generate-chartdata: Exclude linux-yocto for old release branches for now
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-31 17:20:15 +01:00
Richard Purdie
1741a9ca2b cve-report: Drop linux-yocto exclusion
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-29 16:08:29 +01:00
Alexis Lothoré
47343fdd5f scripts/generate-testresult-index.py: expose regression reports on web page
When available, expose tesresult-regressions-report.txt on non-release web page,
as it is done for many other artifacts currently

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-24 10:31:35 +00:00
Alexis Lothoré
20a27080b5 scripts/generate-testresult-index.py: fix typo in template var name
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-24 09:55:47 +00:00
Alexis Lothoré
3a7ee08fa1 scripts/send_qa_email: return previous tag when running a non-release master build
Some nightly builders are configured in yocto-autobuilder2 to run master builds.
Those build parameters currently skip all branches of
get_regression_base_and_target, which then return None, while the caller
expects a base and target tuple

Set default behaviour to return previous tag as comparison base and passed
branch as target for such builds

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-23 16:06:37 +00:00
Alexis Lothoré
c932ae37d8 scripts/test_send_qa_email.py: allow tests with non static results
When the test assert is about a tag in Poky, the result will not be the same
depending on existing tags at the time of running tests.

Add a LAST_TAG marker to loosen constraints but still allow to tests for general
cases (e.g. : test that tag-depending tests does not return None)

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-23 16:06:37 +00:00
Alexis Lothoré
a07dc3b832 scripts/test_utils: test master nightly build case
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-23 16:06:37 +00:00
Alexis Lothoré
61a1289e50 scripts/test_send_qa_email.py: add tests for base/target pair guessing
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
35af879d51 scripts/send-qa-email: fix testing branches regression reporting
d6018b891a broke regression reporting for testing
branches (e.g: master-next in poky, ross/mut in poky-contrib) by ignoring the comparebranch returned by
utils.getcomparison branch

Fix regression reporting for those branches by using comparebranch again. The
fix also refactor/add a intermediary step to guess base and target for
regression reporting, to isolate a bit the logic and make it easier later to add
multiple base/target couples

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
11409d7fea scripts/send-qa-email: add tests for is_release_version
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
8f2d6752cc scripts/send-qa-email: protect is_release_version from None value
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
0a815f4032 scripts/send-qa-email: invert boolean logic for release check
is_non_release_version has an inverted logic which makes its reuse quite
confusing

Transform it as is_release_version and let caller do the negation if needed

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
b913d47991 scripts/send-qa-email: remove unused variable
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
ffdc167377 scripts/utils: add unit tests for getcomparisonbranch
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-20 17:17:26 +00:00
Alexis Lothoré
95dbb1b6fe scripts/send-qa-email: use yocto_testresults_query.py for sha1 resolution
A new tool named yocto_testresults_query.py has been integrated in poky as a
thin wrapper between send-qa-email and resulttool. The new tool is in charge of
converting tags/branches names to SHA1 revisions and to call resulttool with
those revisions

Remove any code related to tag/branches conversions to SHA1 and use
yocto_testresults_qery.py instead

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-08 18:00:06 +00:00
Alexis Lothoré
ff074831d7 scripts/prepare-shared-repos: fix minor typo in autobuilder logs
Minor typo observed when cheking the "Prepared shared repository" step logs in
autobuilder web interface:

====================================================================================================
Intially fetching repo poky (1675810261.1)
====================================================================================================

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-15 11:31:10 +00:00
Richard Purdie
a16accc5dd cve-report: Remove ignore list and expose all CVEs
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-07 21:53:00 +00:00
Alexis Lothoré
013d4f4df1 scripts/send-qa-email: add target and base revisions in regression report
Current regression reports do not contain information about versions compared
when generating reports. While it is still possible to get the information by
searching the autobuilder log, it is not convenient. Moreover, future
developments will allow to generate multiple reports (with different bases for
comparison) in a single build.
As a consequence, embed target and base revisions in the report header

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-07 21:51:47 +00:00
Alexis Lothoré
2c0d9e1977 scripts/send-qa-email: reduce testresults shallow clone depth
Since we are now force-fetching base revisions and target revisions for
regression report generation, we can make testresults clone even more "shallow"
to increase clone speed in CI pipelines

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-07 21:51:47 +00:00
Alexis Lothoré
13b0ddac62 scripts/send-qa-email: force current revision fetch
If we try to run send-qa-email to simulate past releases (for example, for
development or debugging), the execution will very likely fail because the
target revision to examine (ie: the poky revision) is too old, and as a
consequence is not contained in the testresults shallow clone anymore (because
testsresults history keeps moving forward as builds are triggered on
autobuilder). As a consequence, force-fetch the "target" revision, as it is
already done for the "base" revision

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-02-07 21:51:47 +00:00
Alexis Lothoré
54d8e519f3 scripts/send_qa_email.py: add unit tests on previous version computation
The "previous version" computation bring many edge cases depending on the
version under release. Add a basic test suite to validate currently implemented
computation strategy and to prevent mistakes when ediiting it in the future

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-26 22:40:34 +00:00
Alexis Lothoré
d6018b891a scripts/send-qa-email: Generate regression reports against most relevant release
Instead of only generating regressions reports against HEAD of relevant branch, compute
most relevant tag (ie : release) against which we can check for regressions. General rules
introduced are the following :
- milestone release is checked against previous milestone if possible, otherwise
  against major release
- point release  is checked against previous point release if possible,
  otherwise against major release
- major release is checked against previous major release
- a non release build is checked against base branch
Examples :
- 4.1.2.rc1 is checked against yocto-4.1.1
- 4.1.2 is checked against yocto-4.1.1
- 4.1.1.rc1 is checked against yocto-4.1
- 4.1.1 is checked against yocto-4.1
- 4.1 is checked against yocto-4.0
- 4.1.rc4 is checked against yocto-4.0
- 4.1_M2.rc1 is checked against 4.1_M1
- 4.1_M2 is checked against 4.1_M1
- 4.1_M1.rc1 is checked against yocto-4.0
- 4.1_M1 is checked against yocto-4.0

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-26 22:40:29 +00:00
Alexis Lothoré
caf1e75312 scripts/send_qa_email.py: Wrap send_qa_email.py content in function
This wrapping allows importing send_qa_email.py in another script without
executing the QA emailing routine. This is useful for unit testing the script
internal functions

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-26 22:40:11 +00:00
Alexis Lothoré
8b16d49789 scripts/send-qa-email: add symlink to preserve compatibility with autobuilder
Merely renaming send-qa-email to send_qa_email.py would imply to update
yocto-autobuilder2 scripts, which can be daunting. In order to preserve
compatibility with current configuration, add a symlink pointing to the
new script

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-26 22:40:07 +00:00
Alexis Lothoré
5adb7a7dc3 scripts/send_qa_email.py: Rename send-qa-email to send_qa_email.py
This rename fixes send-qa-email regarding python guidelines, which allows to
import the script content in another script (for unit testing purpose for
example)

Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-26 22:40:02 +00:00
Michael Halstead
f195338438 run-docs-build: switch to released docs tarball
The pub/non-release directories have aged out and no longer work.
Switch to a stable location and bump the version to 4.1.2 as well.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2023-01-17 11:04:42 -08:00
Richard Purdie
655dd1c146 scripts/run-config: Only run bitbake command if environment file exists
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-14 21:06:38 +00:00
Richard Purdie
4cc1f44a22 scripts/run-config: Ensure bitbake server is shutdown at the end
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-01-14 12:35:10 +00:00
Alexander Kanavin
5843653181 config.json: add x86 (32 bit) ptest options
This will be particularly useful for testing Y2038 issues,
as that is the only 32 bit target that can be run at native speed
on the AB cluster.

Whether a-full should get fast ptests or full ptests can be decided
after collecting AB execution times for both.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-12-07 11:24:05 +00:00
Richard Purdie
5fee00855e yocto-metrics: Add langdale CVE monitoring
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-10-28 13:30:19 +01:00
Quentin Schulz
0c8395c947 scripts: run-docs-build: make the workdir pristine between tries
It happened that the git repositories were dirty and resulted in
incorrect files being used. Let's use git clean -ffdx to force a
completely clean git repositories before and after checking out a branch
so that nothing is left from or to another branch build. Also git reset
--hard to undo changes to tracked files.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Reported-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> #https://lore.kernel.org/yocto-docs/e50abe3c777e4a23a752a3ec25ad0b2a@axis.com/
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-10-27 17:37:18 +01:00
Michael Halstead
1e0cd71f65 scripts/run-docs-build: make nested dirs for contrib/name/* branches
Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2022-10-18 13:46:53 -07:00
Richard Purdie
effb9b0fcd scripts: Ensure gplv2 revision isn't listed and repos aren't used
We disabled meta-gplv2 for master, ensure the repo isn't used in the
collection or QA scripts.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-26 13:01:37 +01:00
Richard Purdie
cc0005d364 scripts/patchmetrics-update: Improve debug output
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-20 15:56:25 +01:00
Alexander Kanavin
e18974a86c scripts/run-patchmetrics: remove conf/templateconf.cfg as well between builds
With the recent template config changes to oe-core its content is no longer
backwards compatible.

'-f' is to guarantee future compatibility with build setups where the file
is not present.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-09-02 11:43:59 +01:00
Richard Purdie
b7ee72be92 scripts/archive_buildstats: Exit early if buildstats isn't present
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-24 20:56:12 +01:00
Aryaman Gupta
c054c03e4f scripts/archive_buildstats.py: archive buildstats to tar.zst
Archive the buildstats of every failed build and 1% of random builds. Convert
the time-stamped buildstats directory to a compressed tarball using the
hostname as a prefix (to the file name only) so that one can identify the
source machine. Move these tarballs to the directory:
	testresults/<build_name>/buildstats/

The archiving is performed during the "collect results" step.

Signed-off-by: Aryaman Gupta <aryaman.gupta@windriver.com>
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-23 23:35:47 +01:00
Quentin Schulz
a9f5454b30 scripts/run-docs-build: do not checkout releases.rst from master anymore
Master branch of the yocto-docs now autogenerates the releases.rst file
and the file therefore does not exist anymore.

Signed-off-by: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-20 14:25:19 +01:00
Quentin Schulz
695bd33b47 scripts: run-docs-build: use latest version of set_versions.py script
`git checkout <pathspec>` without <tree-ish> only undo the changes made
to pathspec compared to HEAD. It is not guaranteed that HEAD is on
latest commit of master branch from upstream when running this script,
therefore let's add the <tree-ish> argument to specify which branch to
use to make sure set_versions.py is the latest, otherwise getlatest
might return the wrong information.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-20 14:25:19 +01:00
Richard Purdie
a263c0b0d3 srcipts/generate-chartdata: Drop dateutil dependency
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-30 16:33:54 +01:00
Richard Purdie
400e1e1b2b scripts/utils: Allow tags to be updated from upstream (meta-agl has force pushed them)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-29 16:44:03 +01:00
Richard Purdie
54630b14ce scripts/run-patchmetrics: Ensure cve data for last year is copied
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-29 07:45:46 +01:00
Richard Purdie
01f4920d78 scripts/generate-charts: Add json data for last year as well as multiyear
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-29 00:04:23 +01:00
Richard Purdie
70cdf365ef run-docs-build: Switch to newer docs tarball
This updates docs generate to a newer version of sphinx.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-23 13:31:41 +01:00
Michael Opdenacker
a1575b063b run-docs-build: allow build warnings again
This allows to switch to a more recent of Sphinx
which will generate warnings with old versions of docs.

This way, it's not immediately necessary to patch
all such versions.

This commit reverts
https://git.yoctoproject.org/yocto-autobuilder-helper/commit/?id=8273124feb9da2ffe93fcee7c4529d5597e1684a
which originally reverted
https://git.yoctoproject.org/yocto-autobuilder-helper/commit/?id=931d409b255a85f2217ca093d8391a678ce00ddb

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-23 13:30:26 +01:00
Richard Purdie
1baf966db6 run-docs-build: Ensure origin is specified for master
We may not have fetched the master revision if a different one was being
built so using origin/master works consistently in all cases.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-23 13:29:56 +01:00
Richard Purdie
3921d4f3ec scripts: Ensure directories exist
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-14 22:09:16 +01:00
Richard Purdie
9d7820da27 scripts/docs_add_banner: Fix several issues
* Fix a syntax error causing the script to fail
* Skip symlinks files (symlink directories were already skipped)
* Drop unneeded whitespace
* Abstract path join to a variable

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-03 10:51:38 +01:00
Abongwa Amahnui Bonalais
5dd90ea43b scripts/docs_add_banner: Add a banner on the old documentation docs.
Add a script which adds banners to the old docs and outdated dunfell docs
so that the user knows they're using old documentation.

Signed-off-by: Abongwa Bonalais Amahnui <abongwabonalais@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-03 10:51:08 +01:00
Quentin Schulz
9ebeb61276 scripts: run-docs-build: do not extract eclipse directories from old docs
For some reason, the old docs tarball includes many eclipse
subdirectories which are just cluttering the docs website up.

Therefore, let's just not extract eclipse directories from the tarball.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-01 09:14:58 +01:00
Richard Purdie
a772bf318d scripts/cve-generate-chartdata: No need to exlude db
These are already handled in all branches we care about so drop the exclusion.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-25 17:55:12 +01:00
Richard Purdie
60902768cc scripts/run-patchmetrics: Drop honister, remove oldder json files
Keeping all the previous json files in tree has too much overhead
so drop the old ones. Honister doesn't support cve-check with json.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-25 17:52:39 +01:00
Richard Purdie
47d8883222 scripts/run-patchmetrics: Continue CVE checks for honister for now
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-25 09:46:15 +01:00
Richard Purdie
10ecb12155 scripts: Add script to update CVE count data in json file
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-25 08:32:19 +01:00
Richard Purdie
6655466ea6 scripts/run-patchmetrics: Seperate out cve-check json files into direcotries
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-24 15:21:23 +01:00
Richard Purdie
573aee4421 scripts/patchmetrics-generate-chartdata: Remove unused data
When generating the chart specific data, remove elements which aren't
used to reuse the filesize which improves browser loading speed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-24 11:05:17 +01:00
Richard Purdie
7c7b96cf19 scripts/patchmetrics-update: Fix typo
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 23:18:37 +01:00
Richard Purdie
803bdecd62 scripts/run-patchmetrics: Ensure tmpdir is clean between build runs
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 22:56:23 +01:00
Richard Purdie
125f1dbea4 scripts: Add patch to filter the chart data to make it usable
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 22:54:54 +01:00
Richard Purdie
c491e01653 scripts/run-patchmetrics: Ensure environment works for dunfell
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 22:11:19 +01:00
Richard Purdie
e3beeb9328 scripts: Extend CVE testing to kirkstone and dunfell branches
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 16:22:35 +01:00
Richard Purdie
7eca1ae4d7 scripts: Add ability to add/process missing patch stats data
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-23 16:05:23 +01:00
Richard Purdie
ca67ed751e run-patchmetrics: Add very basic cve-check functionality
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-17 17:14:13 +01:00
Richard Purdie
8702fdbb72 Clarify license and copyright information
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-17 10:29:45 +01:00
Richard Purdie
348467c2c8 run-patchmetrics: Use -m for realpath for results dir as it doesn't exist
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 17:21:45 +01:00
Richard Purdie
5b73a9b6eb run-patchmetrics: Use full variable names
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 17:19:17 +01:00
Richard Purdie
fd1aa61d87 scripts/run-patchmetrics: Ensure paths are sanitized
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 16:39:59 +01:00
Richard Purdie
1887e59889 config/scripts: Allow publishing of patch metrics
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 16:37:10 +01:00
Richard Purdie
2765a6a314 config/scripts: Add initial patch metric tracking code
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 16:21:57 +01:00
Richard Purdie
47ef936ea5 config/run-config: Allow other OE-Core machines to be tested manually
These are not part of our standard testing but allow them to
be triggered manually to assess their status.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-05-13 15:17:54 +01:00
Richard Purdie
91f49091cc scripts/run-docs-build: Use set-versions.py to get the latest release branch name
The intent here is to use the latest release branch name instead of a tagged version.
For the 4.0 case, this means the full migration guide will be shown instead of
the reduced information in the 4.0 tag.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-26 11:35:28 +01:00
Quentin Schulz
f418022d8f scripts: run-docs-build: reuse logic to link to latest tag
Since the latest tag already has a specific handling in the forloop,
let's just move the symlink creation inside the forloop.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-20 13:13:15 +01:00
Quentin Schulz
1870fb3a6c scripts: run-docs-build: make latest documentation tag the default version
Currently, the master branch is the default branch being displayed by
default when reaching the Yocto docs website. When big changes are
implemented for the next release, these are shown immediately to the
user, even though there is currently no release available for those
changes. This is an issue when e.g. behaviors are changed, new features
are added, variables get renamed or some syntaxes change because the
user might try to use things that aren't available to them yet.

I believe more people are using released version of Yocto
Project/Bitbake than people working on latest master. So let's make the
default version of the docs the latest tag (in terms of version number,
not date of tagging) to avoid too much confusion.

The master branch of the docs is now available at /dev subpath.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-20 13:13:15 +01:00
Quentin Schulz
4cd985b23d scripts: run-docs-build: use set_versions.py and switchers.js.in from master
set_versions.py and switchers.js.in need to be up-to-date so that a
consistent behavior is kept between different branches and tags of the
documentation.

Right now, kirkstone branch is lagging behind master and therefore does
not have the latest changes from master (e.g. the new obsolete
algorithm, which obviously isn't an issue right now, but will be in two
years). Using master version for those scripts also lightens the
maintenance burden.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-19 22:07:09 +01:00
Quentin Schulz
2852909e55 scripts: run-docs-build: add option to skip upstream rsync
The rsync only makes sense for the Autobuilder as most people don't have
access to docs@docs.yoctoproject.org. Therefore, to allow for easier
contribution to this script, let's allow to skip the rsync so the script
can continue to run.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-19 22:07:09 +01:00
Quentin Schulz
2f972bb742 scripts: run-docs-build: allow to pass buildtools script and docbook tarball paths
Currently, the path to buildtools script and docbook tarball are
hardcoded to work on Yocto Project Autobuilder. However, this makes it
harder to contribute to this script because it is very unlikely those
paths exist on a developer PC.

Instead, let's allow to override variables by using the environment and
make the current hardcoded values the default ones.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-19 22:07:09 +01:00
Quentin Schulz
71527dd20d scripts: run-docs-build: transform argument paths into absolute paths
The script is written in such a way that absolute paths are expected.
Instead of failing weirdly at some point in the script, let's just make
all paths passed to this script absolute by calling realpath on them.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-19 22:07:09 +01:00
Richard Purdie
5946a6f028 scripts/run-docs-build: Support auto generation of switchers.js and poky.yaml
This uses the set_versions.py script from the docs master branch to handle
creation of the swictchers.js version information as well as the data in
poky.yaml.

This allows patches to those sections of the docs to be dropped.

It is assumed the patch to use set_versions is applied to the docs transitions
branch so that it's switchers.js files no longer need to be tweaked.

This does lead to user visible changes on the website:

- Older versioned released docs gain their current version and the
  latest version listed in the switcher rather than being unlisted
- The list of releases is normally filtered down to our active ones
  (hardknott, honister and dev right now)
- 3.3's doc references to gatesgath are corrected to hardknott
- Docs for unversioned release branches (not linked on the website) now
  use 3.1.999 versioning instead of confusing them with the last relased version
- 3.1.13 refers to 3.1.13 instead of 3.1.12

all of which seem to be reasonable improvements.

The big advantage of these changes is that with a single change to the script
in the master branch, the right thing should happen for all the current docs
and at release time, only a docs rebuild should need to be triggered after tags
are pushed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-22 22:17:02 +00:00
Quentin Schulz
6fd933fe06 scripts: run-docs-build: factor out yocto-docs tags and branches building
Except patching which is specific to tags and yocto- tag prefix
stripping, the logic is identical, so let's merge both loops together.

Cc: Quentin Schuls <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
c2e3a4515b scripts: run-docs-build: simplify sphinx-buildable yocto-docs tag list fetching
The commit that introduced Sphinx support in yocto-docs is
01dd5af7954e24552aca022917669b27bb0541ed. Any tag containing this commit
is buildable by sphinx.

Dunfell tags don't all have Sphinx support. However, all tags containing
the introducing commit c25fe058b88b893b0d146f3ed27320b47cdec236 are
buildable by sphinx.

Therefore, let's just list all tags which contains either of those two
commits instead of the complex series of pipes and shell commands.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
d69a2adc43 scripts: run-docs-build: automatically build new yocto-docs branches
Since commit 01dd5af7954e24552aca022917669b27bb0541ed, all later
releases of yocto-docs can be built with Sphinx. Instead of manually
updating this list, let's have git return the list of remote branches
which contains the commit.

dunfell branch was initially released without Sphinx support but was
later patched, hence why it's explicitly listed.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
592863ebab scripts: run-docs-build: factor out all yocto-docs branches building
master, master-next and transition only differ from other branches by
their output directory name. Let's put everything in common and only
have a check on whether the branch is master, master-next or transition
and modify the output dir in those cases.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
72ca6fc8dc scripts: run-docs-build: automatically build new Bitbake branches
Since commit 84ccba0f4aff91528f764523fe1205a354c889ed, docs of all later
releases can be built with Sphinx. Instead of manually updating this
list, let's have git return the list of remote branches which contains
this commit.

1.46 branch was initially released without Sphinx support but was later
patched, hence why it's explicitly listed.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
7ed0c8a92f scripts: run-docs-build: factor out all bitbake branches building
master and master-next only differ from other branches by their output
directory name. Let's put everything in common and only have a check on
whether the branch is master or master-next and modify the output dir in
those cases.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-18 17:02:09 +00:00
Quentin Schulz
8273124feb Revert "scripts: run-docs-build: do not turn sphinx warnings into errors"
The patch was meant as a quick temporary work-around to have the docs
built and published.

Now that releases where -W flag is set (turning warnings into errors)
are appropriately patched to make those warnings disappear (on Sphinx
v3.2.1 which is the one used on the builder), this patch can be reverted
so that next time a warning appears the doc building will fail but will
not destroy the doc website (because of commit
6a4e6ef18d "scripts: run-docs-build: make
the script fail hard ASAP when there's an error", since rsync will not
be run if any error happens before).

This reverts commit 931d409b25.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 22:03:37 +00:00
Quentin Schulz
8b80b6f485 scripts: docs-build-patches: fix incorrect conf.py for yocto-3.4.1
The patch was missing from yocto-3.4.1 release and only made it to
yocto-3.4.2 unfortunately so let's backport it.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 22:03:37 +00:00
Quentin Schulz
4a97ab144d scripts: docs-build-patches: fix bitbake objects.inv being used
Each Yocto Project release is validated for a specific Bitbake release.

By mistake, most release docs are pointing at the development branch of
Bitbake documentation instead of the one that was validated for the
Yocto Project release.

This fixes the issue by patching the conf.py of impacted releases.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 22:03:37 +00:00
Quentin Schulz
62e38ffaab scripts: run-docs-build: simplify patching logic
There's no need to keep a list of tags requiring to be patched since the
tag is part of the path where patches are stored.

Therefore, let's only check if there's a patch directory for a given tag
and if so, apply all patches in there.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 22:03:37 +00:00
Richard Purdie
c0a7cac39a oe-build-perf-report-email: Drop phantomjs email generation support
This approach didn't work reliably so switch to text based emails
pointing at the website version with graphs and data.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 17:22:03 +00:00
Richard Purdie
c77f588773 scripts/build-perf-test-wrapper: Update to only send text based emails
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-15 17:18:38 +00:00
Alexander Kanavin
f8bd083c07 auh-config: update smtp server to localhost
Current setup only allows sending mail via localhost on alma workers.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-03 09:24:49 +00:00
Michael Halstead
ca8e95276d scripts: run-docs-build: patch releases with incorrect current version
Add patch for version 3.3.5 and move patches into a dedicated
subdirectrory to keep the scripts directory tidy.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2022-03-02 22:39:04 -08:00
Alexander Kanavin
3fc79b78f2 auh-config: correct LICENSE_FLAGS variable
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-01 11:22:29 +00:00
Richard Purdie
1ae547a4c8 config.json/run-docs-build: Update to new /srv path
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-24 11:13:19 +00:00
Michael Halstead
c84864eda9 scripts: run-docs-build: patch releases with incorrect current version
When current_version and all_versions are not updated before the release
build the tag will not build working docs. Make docs builds pull in
needed updates after the fact.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
2022-02-23 17:15:09 -08:00
Quentin Schulz
931d409b25 scripts: run-docs-build: do not turn sphinx warnings into errors
Default flags for sphinx-build contain -W which turns warnings into
errors. This is really helpful during debugging and could be used for
continuous integration though we do not have such a thing separate from
the continuous delivery in place currently. Nowadays, the docs files
served at docs.yoctoproject.com are actually removed before being
updated from the newly built docs. If the `html` target, a dependency of
`publish` target is failing, the docs aren't copied over to the `final`
temporary directory. Therefore it'll be missing in the rsync upload to
docs.yoctoproject.org.

Instead, let's disable the turning of warnings into errors so that the
`html` make target can finish successfully and the `publish` make target
to finish successfully too.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-23 16:23:35 +00:00
Quentin Schulz
6a4e6ef18d scripts: run-docs-build: make the script fail hard ASAP when there's an error
There are some intermittent issues with the script not publishing all
versions. So let's go extreme and fail the script if any error happens:
 - a command returns a non-zero code, even if piped,
 - a variable is used uninitialized,

This also makes the script print each and every command being run so we
have a better idea where the script struggles.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-23 16:23:35 +00:00
Richard Purdie
4fe90b7ae0 scripts/run-docs-build: Add comments so we can tell where warnings are from
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-02-22 22:31:00 +00:00
Michael Opdenacker
ce75f076e8 run-docs-build: fix checkout of releases.rst from master
A wrong path was given given the working directory.

Also revert the changes with "git reset --hard" to
have a clean state before further branch switches.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-25 16:54:39 +00:00
Richard Purdie
aa378bfa84 prepare-shared-repos: Fix none published builds after disabling limited depth
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-24 18:05:23 +00:00
Richard Purdie
1e0b8d9936 prepare-shared-repos: Disable shallow clone speedup as it breaks release builds
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-21 17:19:47 +00:00
Ross Burton
fa3cf565d6 Add qemuarm64-alt to the build matrix
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-12 18:25:49 +00:00
Alexander Kanavin
5b2651e502 run-auh: do not clean up build directory
This is done regularly by the overall AB maintenance tooling, and erasing
build artifacts makes it difficult to find out what went wrong
when it does.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-12 23:00:20 +00:00
Richard Purdie
68b4b7090d prepare-shared-repos: Use full depth for release builds
Without this we'd see failures in the perf builds since it would be able to track
history correctly for commit counts.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-12 11:54:37 +00:00
Michael Opdenacker
86d7ed6fe9 scripts/run-docs-build: make all versions list releases known to master
This allows all versions of Bitbake and Yocto Project manuals
to see the manuals for the latest versions.

This also simplifies the release process, not having to update the
releases.rst file for all releases every time a new release is made.

Note that such synchronization is already done for the
switchers.js file (but in a different way). This way, advertised
releases are in sync with switchers.js.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-12-08 22:00:05 +00:00
Ross Burton
e13059fe73 publish-artefacts: publish meta-arm/generic-arm64 binaries
Publish the generic-arm64 binaries in a dedicated meta-arm/ directory so
it is clear this isn't from the core layers.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-11-25 15:23:37 +00:00