Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/sphinx builders #1

Closed
wants to merge 199 commits into from
Closed

Feat/sphinx builders #1

wants to merge 199 commits into from

Conversation

LecrisUT
Copy link
Owner

Pull Request Checklist

  • implement the feature
  • write the documentation
  • extend the test coverage
  • update the specification
  • adjust plugin docstring
  • modify the json schema
  • mention the version
  • include a release note

@LecrisUT LecrisUT force-pushed the feat/sphinx-builders branch 3 times, most recently from 15af051 to 7ecbb08 Compare November 20, 2023 08:28
psss and others added 27 commits November 20, 2023 12:21
The upstream issue has been fixed and released. Time to remove the
temporary `xfail` from the test.
Fields that reflect parameters of a single test invocation cannot live
in the `Test` class: an instance will be shared by multiple threads when
being executed on multiple guests, and therefore `return_code` & co.
cannot be owned by `Test`.
Refactored the code, added a unit test, documented.
The actual context is a combination of CLI and plan's context, and it
brings additional information on the test configuration that produced a
given result.
The discover part of the `upgrade` execute step is just a slightly
modified version of the `discover` step which defaults to using
the current repository to search for available tests, in this case
for upgrade tasks. Let's allow having both real plans and upgrade
paths and tasks in the same repository for easier upgrade testing
development.
Move the key from the `Test` class to `Core` so that it can be
used for plans and stories as well.

Signed-off-by: Vector Li <[email protected]>
Co-authored-by: Petr Šplíchal <[email protected]>
Some errors might have added context that would be helpful for
investigation: the plugin itself is "just" an API client, and often the
important info comes back in API responses.
Makes typing nicer for check plugins that provide their custom `Check`
subclass.
Just --image was available, and muscle memory is hard.
The reboot count is owned by a test invocation instance. All
reboot-related methods accept a single argument, the invocation
instance. This makes the code prime candidate for being owned by the
invocation class as well.

I added a bit of refactoring and polishing: the base is a mere move from
plugin-level methods into the `TestInvocation` class. On top of that, a
bit of reformatting added as I was fixing `self` and `invocation`
references, plus few recent goodies were used, namely the cached
property.

While working on a watchdog functionality, there will be an async
reboot request. As of now, the idea is for the watchdog to set a flag in
the test invocation instance, the flag which would be also consumed by
the `reboot_requested` property. Another point towards the invocations
owning reboot handling.
Add a note, in case users set inproper values for the Polarion
report options. Fix the `tmt` name spelling.

Co-authored-by: Petr Šplíchal <[email protected]>
To support a watchdog check
(teemtee#1523), tmt must learn more about
rebooting a guest, especially when the SSH connection is no longer
available. The patch begins by extending the `connect` plugin to support
custom commands. This will help with the testing and local runs.

Imagine a Beaker box, reserved outside of tmt, used with `connect`
plugin. The test may render the box unresponsive, in which case the SSH
& a remote `reboot` command are not possible. For local runs and testing
we can provide `connect` with info to trigger reboot even in those
conditions, e.g. with `soft-reboot: bkr system-power --action reboot $IP`.

This comes with a bit of refactoring, to allow `reboot` to run a command
on the runner rather than on the guest.
happz and others added 28 commits March 12, 2024 15:50
There is a class of commands whose output is interesting only when they
fail. Allow running them, and do not log their output in real-time, but
log it if the command exits with non-zero exit code.
More and more we see the need for primitives like "install a package".
Plugins start to require packages to be present on guests, we already do
have `prepare/install` plugin, and the upcoming all mighty install
plugin. To support all these functions, `tmt.package_managers` would
provide necessary primitives, allowing implementations to be shipped as
plugins.

The patch starts building the primitives, converting
`tmt.steps.prepare.install` to use them in the process.
In order to ensure that docs can be successfully built and the
full test execution is not needed for documentation-only changes
let's enable `/plans/install/docs` for the core packit jobs.

Also, I propose to use the `fedora-latest-stable` target for the
core jobs as it should cover the basic functionality just fine.
Add `modified_ref`,`HEAD` commit hash output
Print that nothing is selected
Previously it selected all tests. Now it respects that if nothing is
modified then nothing is selected.

Fix: teemtee#2449
Introduce a new environment variable, `TMT_TEST_ITERATION_ID`,
which is accessible to the test script. This variable combines a
unique run ID and the test's serial number. The value of this
variable should be different with each new test execution.

Resolves: teemtee#2632
These examples should, of course, use `try`, not the `run`
subcommand.
There's a bunch of tests which are executed under the `virtual`
provision plan which can take a little bit more time. I suggest to
increase the default `duration` as I'm not sure it's really worth
to fine tune the value individually and `10m` sounds reasonable.
I believe we don't have to be that strict.
Make it clear that plan cannot define context for itself.
Introduce a new `TMT_REPORT_ARTIFACTS_URL` environment variable
for the tmt run process and put it in the launch's description
field on ReportPortal.

Fixes teemtee#2660.
Add ansible-lint to the pre-commit-config file, and fix
failures/warnings for ansible files as well.

Signed-off-by: Vector Li <[email protected]>
Raise `DiscoverError` if git root != fmf root.
- manual addition of environment variables for options (for report
  step via fmf)
- modified launch-description option to append an existing
  description instead of overwriting
Add support for `apk` package manager from Alpine Linux.

Unsupported debuginfo installation, seems not have a nice
`debuginfo-install`-like solution.

Installing by path is limited to certain recognized paths.
The existing `apk-file` solution looks flaky, it was randomly
hanging and does not have a good machine readable output.

For testing we need to use a locally build alpine image
which contains required packages of tmt and the unit tests.

Resolves teemtee#2694

Signed-off-by: Miroslav Vadkerti <[email protected]>
…eemtee#2775)

When Beaker API client instance is initialized, it records active
Kerberos client. Which may easily expire, or get refreshed, but mrack
would not know and stick to the old one. That results into Beaker
cleanup failing, as reported in teemtee#2774
Add forgotten f-string to properly render the default value in the
`--help` message.
- Call `make generate` inside conf.py
- Remove sphinx builder make targets

Signed-off-by: Cristian Le <[email protected]><[email protected]>
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.