Comments (5)
+1. We discovered the need to split prepare
step into several stages in the real world, the specification should support us in doing so. In our internal workflow, we had to introduce pre-artifact-installation
and post-artifact-installation
steps, "wrapping" the actual installation of the artifact, all three part of the prepare
step. Users should be able to specify whether they want to install a package/enable repository/run playbook/etc. before the installation of the artifact, or after, or even signal they don't care at all when this action would take the place, e.g. by not specifying any such requirement.
from tmt.
Shouldn't all of this be handled by prepare?
In general I agree, prepare should have some sub-items / sub-steps. But doesn't it have already? Because the 'how' comes as a list of instructions, so it should be possible to use it as a ordered list, having an some specific entry as an artifact install? (If not present, it would run last.)
from tmt.
I believe the use case could/should be covered by the order
attribute which has been introduced during conversion into dynamic plugins. Each steps can have serveral configs and each of them can have a dedicated order
. This allows users to select when/where exactly the config should happen.
Usage: tmt run prepare [OPTIONS]
Prepare the environment for testing
Use the 'order' attribute to select in which order preparation should
happen if there are multiple configs. Default order is 50. Default order
of required packages installation is 70.
Supported methods (shell by default):
ansible .............. Prepare guest using ansible
install .............. Install packages on the guest
shell ................ Prepare guest using shell scripts
Use 'tmt run prepare --help --how <method>' to learn more about given
prepare method and all its supported options.
from tmt.
As far as I know order
attribute is working correctly in prepare step.
Please reopen if you need more functionality
from tmt.
I'm afraid the missing part is that testing farm would perform the artifact installation under a specific prepare
order. I imagine this could work something like this:
tmt run --all provision ... prepare --how install --directory /path/to/rpms --insert --order=AGREED_ORDER
Users then would be able to specify prepare steps configuration for both before and after the artifact installation. But this means that tmt
would have to be taught how to (properly) do the artifact installation.
from tmt.
Related Issues (20)
- tmt clean guests failed(only affect mrack)
- Support parallel execution of tmt tests HOT 2
- Support discover -h shell tests from the command line
- Support closer integration with other frameworks HOT 1
- [packit] Fedora Koji build failed to be triggered HOT 3
- rpminspect, rpmlint errors and warnings HOT 3
- tmt github action
- users are not able to choose workdir-root if they run tmt clean command HOT 2
- There is no (at least convient) way for users to just keep everything for a specified run
- dogfooding `tmt-lint` pre-commit
- Testing `examples` HOT 1
- plugin: Guestful discover plugin HOT 2
- plugin: Framework allow to return `tmt.utils.Command` HOT 4
- plugin: Checking other plugins
- Implement device.driver for Beaker plugin
- Simplify 'change require/recommend and run test again' workflow
- Document some tmt design patterns
- Best practice around repository enablement HOT 1
- Add support for test phases HOT 4
- plugin: Cannot define parmeterless plugins HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tmt.