Details
-
Technical task
-
Resolution: Won't Do
-
P2: Important
-
None
-
None
Description
We should place the Vagrant file and puppet scripts in Qt5 /coin/provisioning/...
So we need a provision script that:
1. copies the vagrant file to a directory on the VM for example:
/home/qt/network_test_server/
2. calls "vagrant up" on it
3. calls "vagrant down" on it when ready
4. exports a variable that would look more or less like that:
QT_NETWORK_TEST_SERVER_VAGRANT_PATH=/home/qt/network_test_server/
5. modifies /etc/hosts in the right way
Now qtbase (or qtoauth) build system needs to be adjusted:
1. before running tests, check for QT_NETWORK_TEST_SERVER_VAGRANT_PATH
2. go to the directory and call "vagrant up", it should take couple of
seconds
3. run tests
4. call vagrant down
This functionality could be encapsulated in a .pri file. We could even go one step further
and let the provisioning script create and provide the .pri file, so that the content in qtbase
boils down to
!isEmpty(QT_NETWORK_TEST_SERVER_PRI):include($$QT_NETWORK_TEST_SERVER_PRI)
Advantages of the solution:
- changes to network test server are always tested
- no need to change Coin in anyway
- users can use the server
- all modules may opt-in to use it
Disadvantages:
- users need to have access to Qt5 repository