Skip to content

127541 obs ci checks#1

Open
d3flex wants to merge 924 commits into
masterfrom
127541_obs_ci_checks
Open

127541 obs ci checks#1
d3flex wants to merge 924 commits into
masterfrom
127541_obs_ci_checks

Conversation

@d3flex
Copy link
Copy Markdown
Owner

@d3flex d3flex commented Jan 11, 2024

No description provided.

sdclarke and others added 30 commits May 30, 2023 10:49
Needles will now be able to have multiple click points, provided that
each is given an ID. If no ID is specified when calling click_lastmatch,
the first click point found will be used
Test that multiple click points are allowed only when they are all given
IDs
The OBS changed how it decides if a service should run for a package. Services in modes that would not run server side are filtered out.

This means packages created with `link_package` steps stopped running services a while ago. 

Using the `branch_package` step with `add_repositories: disabled` is a replacement for having a package with services but only selected repositories in the test build.
Switch OBS SCM/CI Workflow to branch_package
With this PR I first enable the option to pass network boot with
BOOTFROM. Qemu, however, provides `bootindex` property on the individual block
or net devices. This property is more flexible from `-boot`, where some aarch
do not support. For more read
https://www.qemu.org/docs/master/system/bootindex.html

I do not rethink and I did not refactor the entire logic, to prioritize
`bootindex` for _devices_ or _drives_. I merely enable this option in a
particular case (PXE) where the test requests to boot from network. As for
now, when PXEBOOT is given, and only on x86_64, the test constructs the qemu
command with `-boot n`. This option is not available on other archs like
aarch4 where the net boot is not doable.

Signed-off-by: ybonatakis <ybonatakis@suse.com>
Provide network boot options for qemu
tools/update-deps is a symlink to a script in external/ which is already
excluded from coverage analysis as it comes from an external repository.
tools/update-deps should hence also not be included in our coverage
analysis – especially as its statement coverage is not 100% – and as
tools/update-deps is currently the only file within tools/ that ends up
in coverage data anyway as visible in
https://app.codecov.io/gh/os-autoinst/os-autoinst/tree/master/tools
we should consistently exclude the complete tools directory from
analysis.
Improve coverage, add tests, ensure all scripts handle invalid options
A worker change is required for passing the "incomplete" result
to the web UI. Otherwise the job just ends up "failed" (still
with the proper reason).

Related ticket: https://progress.opensuse.org/issues/129068
Limit the number of test steps/results that can be created
Seems like previous commits by accident reverted the change from 50 to
50k.
Fix MAX_TEST_STEPS with default value of 50k
* Add example for using SVT-1 which seems to be a good alternative to
  VP9
* Use `-cpu-used 1` in VP9 example as it already provides a considerable
  speed-up compared to `-cpu-used 0` and produces only slightly larger
  files
* See https://progress.opensuse.org/issues/129955#note-6
* Use a relative output file path as an absolute path goes in
  the way when using a containerized encoder; it should not have
  any disadvantage in other cases
* Update example command to show how podman could be utilized
* Related ticket: https://progress.opensuse.org/issues/129955
Allow using containerized ffmpeg as external encoder
* Enable the use of an external video encoder by default if it
  one is available; the following options are tested and the
  first one wins:
    * Use EXTERNAL_VIDEO_ENCODER_CMD if it is non-empty (as before)
    * Use the built-in encoder if EXTERNAL_VIDEO_ENCODER_CMD is
      present but empty (as before)
    * Use SVT-AV1 if a version of ffmpeg supporting it is in path
    * Use VP9 if a version of ffmpeg supporting it is in path
    * Use the built-in encoder (as before)
* See https://progress.opensuse.org/issues/129955
Enable external video encoder by default if available
subrepo:
  subdir:   "external/os-autoinst-common"
  merged:   "a9954814"
upstream:
  origin:   "git@github.com:os-autoinst/os-autoinst-common.git"
  branch:   "master"
  commit:   "92d3d4bd"
git-subrepo:
  version:  "0.4.3"
  origin:   "git@github.com:ingydotnet/git-subrepo"
  commit:   "2f68596"
git subrepo pull (merge) external/os-autoinst-common
mergify Bot and others added 24 commits December 15, 2023 14:35
Improve zone handling in setup-multi-machine
qemu-img can compress using up to 4 threads, enable this functionality.
In Qubes OS setup, some jobs upload multi-GB disk images, and reducing
compress time from 40min (about the same time as the rest of the job)
down to 10min makes a huge difference.

This feature is not clearly documented, but I learned about it on QEMU's
IRC, and posted findings here:
https://gitlab.com/qemu-project/qemu/-/issues/80#note_1669835297
Make qemu-img compress file using multiple threads
isa-fdc is only available on (old) PPC and x86.
It's very similar to aarch64.
In
os-autoinst#1555
commit e3d8163 I added an environment variable with a default but also
overwrote the value in the systemd definition template file for unknown
reasons. In 8e355cc subsequently I bumped the default value of the
timeout to 5m but the systemd service file would still overwrite to 1m.
So this commit removes the environment overwrite in the systemd template
so the default of 5m should be effective at least for cases when the
systemd file is deployed again.

Related progress issue: https://progress.opensuse.org/issues/152365
…envswitch

systemd: Fix too strict os-autoinst-openvswitch init timeout
So far we only save the commit hash, but we don't know which
repository it actually comes from.

Issue: https://progress.opensuse.org/issues/152681
Add TEST_GIT_URL/NEEDLES_GIT_URL to vars
Make the default changeable globally via a variable, instead of changing
each invocation of mouse_click/assert_and_click etc. Useful if a backend
introduce some latency already (to not cause "long click" by default),
but also when testing with changed mouse settings.
Make default click times configurable via variables
Due to UEFI becoming the mainstream system boot option for user OS
installation, it should also support UEFI boot in VMware tests.
From VMware ESXi 7.0 guest installation, the boot option switches
from BIOS to UEFI as default, and it will help to workaround bsc#1216655.
For VMware guests, the firmware attribute is set to efi when the guest
uses UEFI, and it is not set when using BIOS.

The libvirt XML format described as below.

- Legacy boot (BIOS)
  <os>
    <type>hvm</type>
  </os>

- UEFI boot
  <os firmware='efi'>
    <type>hvm</type>
  </os>
* Add the `-y` flag in the default ffmpeg command-line and the
  documentation example
* See https://progress.opensuse.org/issues/153235
Override existing video when external video encoder is used
…to_uefi_boot

Add UEFI boot support for vmware tests
Always use "nogroup" (even for NetworkManager)
os-autoinst-setup-multi-machine: Fix tap group discrepancy
- Introduced a `--exit-status-from-test-results` / `-e` flag to
  `isotovideo`.

  It'll inspect the test results after a full run and compute the exit
  code from them.

  If:
  - no test results exist: exit code = 100
  - failed test results results exist: exit code = 101
    (failed result => anything different than ok or softfail)
  else
  - exit code = 0

- Documented the flags in the perl pod section.

- Unit tested with an empty distribution, a fail module distribution and
  a soft failure.

- X-mas gift: Uppercase `$return_code` to follow perl practices.

Co-authored-by: Oliver Kurz <okurz@suse.de>
Co-authored-by: Martchus <martchus@gmx.net>
…d_test_module

Report test module failures via exit codes
Ensure D-Bus config is effective after installing os-autoinst-openvswitch
Check uncovered debug message in t/08-autotest.t
@github-actions
Copy link
Copy Markdown

Great PR! Please pay attention to the following items before merging:

Files matching backend/**.pm:

  • Consider running manual verification tests, especially for non-qemu backends

This is an automatically generated QA checklist based on modified files.

@d3flex d3flex force-pushed the 127541_obs_ci_checks branch 2 times, most recently from d4fea23 to 9ae4f6d Compare January 11, 2024 16:37
Signed-off-by: ybonatakis <ybonatakis@suse.com>
@d3flex d3flex force-pushed the 127541_obs_ci_checks branch from 9ae4f6d to a361e0d Compare January 11, 2024 19:26
@d3flex
Copy link
Copy Markdown
Owner Author

d3flex commented Jul 3, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.