Details
-
Feature
-
Should have
-
None
-
Data Processing
-
-
-
3.5
-
3.5
-
0
-
Team_PSS
-
Sprint 5
-
-
-
-
18.6
-
Stories Completed, Outcomes Reviewed, Satisfies Acceptance Criteria, Accepted by FO
Description
• Plan the work with help from the System Team
• Implement independent installation of ProTest
Currently Protest resides as a subdirectory of the pss-pipeline repository (whose purpose is to provide a single "superbuild" of cheetah and panda (the PSS piepline) and the BDD tests contained in ProTest are triggered using a Make target, which calls a bash script, which launches the tests via pytest-bdd. However, cheetah (and panda will run directly on servers and will be installable via the server's package manager (apt, yum, etc) rather than via the pss-pipeline repository. Cheetah will also be installed in this way at a test facility where the ProTest (and other) tests will run.
ProTest therefore, needs to be independently installable. It needs to be used by the pss-pipeline repository, and as a standalone package for anyone who needs to test cheetah on bare metal.
This brings several challenges/questions
- How should ProTest be packaged?
- pip? Will need to make a pip installable package comprising all of the protest libraries and all the end-to-end tests. This will require the user (whether a pipeline or a sysadmin at a test facility) has python3 and pip3 installed.
- rmp/deb? Will need to make ProTest into a package that can be installed by an OS's package manager. In this case we'll need to make two packages, one for each package manager family (e.g., yum vs apt).
- git clone? The user simply clones the repo manually.
- How should ProTest be launched? Currently this is acheived by a launch script written in bash that sets up a python virtual env, installs the relevant dependencies into it using pip and run the tests (either unit, or BDD) that the user requests. Such a script would need to be shipped with the ProTest package and would be callable from the command line.
- pip? May need to provide a python based launch script instead that is placed into $PATH with the package is installed.
- yum/deb? - can easily provide the launch script and include it in $PATH
- git clone? Could wrap into cmake and launch the tests with a Make target.
We're not sure at this point which method is best or if others we haven't thought of might be better, therefore some advice/agreement with the system team would be useful. As part of the move into it's own repo, ProTest would be able to take advantage of the ska-ci-cd Make targets that are available for linting/packaging/tagging etc.
In this first instance we would like to, on the back of advice from the system team, develop a concrete plan to package protest in such a way that is it available for bare metal users and CI pipelines alike. Then implement this plan over the remainder of, and/or the next PI.