quine-linux/installer/anaconda-webui/vendor/docs/testing.rst
Philip Peterson 255042fe8d Vendor anaconda-webui and build it into the installer image
Replaces installing a patched anaconda-webui RPM from the forge's package
registry: installer/anaconda-webui/vendor/ is upstream release 86 verbatim
(see its PROVENANCE.md), and installer/Containerfile builds it with
upstream's own `make install` in a native-platform stage, then copies the
result over stock Fedora anaconda-webui. The produced file set matches
Fedora's anaconda-webui-86-1.fc46 exactly. Edits to the installer UI now
happen in vendor/ and ship on the next `task build-installer-iso`, with no
RPM, registry or CI in between.

Also follows bootc-image-builder's rename of --bootc-installer-payload-ref
to --installer-payload-ref.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 05:56:26 -08:00

51 lines
3.4 KiB
ReStructuredText

Fix ISO image refreshes for the WebUI tests
-------------------------------------------
In order to test the WebUI code we use the ISO images specified in `Cockpit's bots repository <https://github.com/cockpit-project/bots/tree/main/images>`_.
These ISO files are direct downloads from the official distribution server and their
`creation process is defined in bots repository <https://github.com/cockpit-project/bots/blob/main/images/scripts/fedora-rawhide-boot.bootstrap>`_.
The purpose of using these ISOs for the tests instead of downloading from the official server is to gate the image updates.
The default refresh period of the test images is one week, but they can also be `refreshed manually <https://github.com/cockpit-project/bots#refreshing-a-test-image>`_.
Image refreshes happen with `Pull Requests which update the current image SHA <https://github.com/cockpit-project/bots/pull/2981>`_.
The tests defined in `tests/` will run on the Pull request gating the `relevant to anaconda image refreshes <https://github.com/cockpit-project/bots/blob/main/lib/testmap.py>`_.
Image refreshes with successfull CI will be merged automagically from Cockpit team.
In the case an updated dependency makes the WebUI tests on the image refresh fail, the on-duty team
member is in charge of debugging the failure.
For this take the following steps:
* Locally checkout the bots repository branch used in the failing refresh PR. The path to the local bots checkout should be the `bots`.
* Create the test VM with the new image and debug by following the `WebUI test instructions <https://github.com/rhinstaller/anaconda-webui/tree/main/test#readme>`_
When the reason for the breackage is identified there are two options to go forward:
* If the failure comes from an intended change in behaviour adjust Anaconda or the tests
* If the failure uncovers an actual regression, file bugs for the given Fedora components. If it does not look like the issue will be
fixed quickly, work around in Anaconda or add a `naughty override file <https://github.com/cockpit-project/bots/tree/main/naughty/>`_, thus marking the expected failure pattern.
Fix a class of NPM errors that can break Web UI tests
-----------------------------------------------------
This issue manifests as failed build of Anaconda RPMs due to NPM errors, that prevents Web UI tests to be started at all. This differs
from an actual bug in NPM dependency specification or NPM package maintainers going all "it works on my machine" again in two key aspects:
* the same NPM error suddenly breaks Web UI tests on *all* PRs
* when Web UI tests are run locally outside of Cockpit CI the build succeeds and the test are started
What you are seeing is breakage in NPM caching the Cockpit CI is using to avoid issues with the massive NPM consumption of the infra.
The mechanism it usually works fine, but sometimes the cache update mechanism can get stuck, resulting in the cache going stale causing
this issue to manifest.
How to fix:
* retry the test run on the PR - sometimes no all the builders are currently affected, retrying might run the test on different builder
* report the issue to the Cockpit team - on #cockpit on Libera Chat IRC or as a new issue in https://github.com/cockpit-project/cockpit/issues
In the end, someone from the Cockpit team will tell the builders in the Cockpit infra to drop their cache, fixing the issue or the affected
builder possibly gets cleaned up by some automated mechanism over time.