You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fmf discover implementation copies the whole source directory (fmf_root) to the working directory in (in my case) /var/tmp/tmt/run-009/packages/my-package/plans/232-0-0/discover/default-0/. In my case, the source directory contains many gigabytes of build outputs. Copying all this data takes a many minutes on our CI runners (yes, network-attached slow disk). The whole tree is copied, .gitignore is not honored (unlike in other copy steps that are done with rsync).
I tried, but there are too many file copies and conditional code paths going on for me to really see what a good solution could be. I observed that the shell discovery plugin uses symlinks (#953). Changing the code to use symlinks makes things work for me with for local execution, but not when executing inside a container. Do you have a suggestion how to fix this issue? I'm happy to do the implementation.
Steps to reproduce
Have a directory with a working tmt setup and many GB of (unrelated) files in it.
Run the discover step, e.g. (in my case)
$ tmt run discover -vvv plan --name /packages/my-package/plans/232.0.0 provision --how local --feeling-safe
/var/tmp/tmt/run-001
Found 22 plans.
/packages/my-package/plans/230.0.0
summary: Smoke test for my-package
discover
how: fmf
order: 50
directory: /my/workdir
LONG WAIT HERE
hash: e7c193a
filter: tag:targets-my-package
summary: 1 test selected
/packages/my-package/tests/smoke
provision
queued provision.provision task #1: default-0
Observe the output to hang after the line starting with directory: until the file copy has completed.
The text was updated successfully, but these errors were encountered:
The fmf discover implementation copies the whole source directory (fmf_root) to the working directory in (in my case)
/var/tmp/tmt/run-009/packages/my-package/plans/232-0-0/discover/default-0/
. In my case, the source directory contains many gigabytes of build outputs. Copying all this data takes a many minutes on our CI runners (yes, network-attached slow disk). The whole tree is copied,.gitignore
is not honored (unlike in other copy steps that are done with rsync).This is the code in question:
tmt/tmt/steps/discover/fmf.py
Lines 445 to 449 in 2af39b3
I tried, but there are too many file copies and conditional code paths going on for me to really see what a good solution could be. I observed that the shell discovery plugin uses symlinks (#953). Changing the code to use symlinks makes things work for me with for local execution, but not when executing inside a container. Do you have a suggestion how to fix this issue? I'm happy to do the implementation.
Steps to reproduce
Have a directory with a working tmt setup and many GB of (unrelated) files in it.
Run the discover step, e.g. (in my case)
Observe the output to hang after the line starting with
directory:
until the file copy has completed.The text was updated successfully, but these errors were encountered: