1. Preamble
- Repository with Actor Testing Framework: https://gitlab.eufus.psnc.pl/ach/actor_testing_framework
- Usage example: https://gitlab.eufus.psnc.pl/ach/nemo/-/tree/test_actor/pass
2. Framework directory structure
2.1. Your repository:
Assuming your repository looks something like this:
Project_root ├── root_files.extension ├── root_directiories/ │ ├── directories/ │ ├── ... │ └── files.extension └── tests # <- this is directory where the whole actor testing framework should be placed
Then the actor testing framework has to be in a directory called tests/
and this is mandatory.
2.2. Actor Testing Framework repository - inside your project:
The inside of the tests/
directory, inside your repository, should contain the entire actor testing framework repository like structure below:
tests ├── __init__.py ├── ci_scripts │ ├── .gitlab-ci.yml │ └── .iter-ci.sh ├── configs │ ├── actor_configuration.yml │ └── ids_configuration.yml ├── input_pulse_file │ ├── ITER │ │ └── 3 │ │ └── 0 │ │ └── {pulsefiles} │ └── GITLAB │ └── 3 │ └── 0 │ └── {pulsefiles} ├── main_code_run │ └── run_actor.sh ├── modules │ ├── modules_gitlab.yml │ └── modules_iter.yml ├── native_codes_build │ └── build_actor.sh ├── pytest_scripts │ ├── conftest.py │ ├── __init__.py │ ├── pytest.ini │ └── test_actor.py ├── README.md ├── test.sh └── utils ├── get_actor_info.py ├── get_ids_info.py └── get_ids_name.py
3. CI engine - ITER or GITLAB
Actor Testing Framework is prepared to run on both ITER CI (called Bamboo) and GITLAB CI (works like Gateway).
There is a slight difference between these platforms that causes the framework to be configured differently to run tests on each of them.
3.1. ITER CI Configuration
3.1.1. ITER Modules
To set up the ITER modules needed to build and run the actor, there is a file called modules/modules_iter.yml
, where you need to provide all the necessary modules, preferably full versions.
├── modules │ ├── modules_gitlab.yml │ └── modules_iter.yml # <-- This is file dedicated for ITER modules ############################################## - example: inside modules_iter.yml: ############################################## modules: - IMAS - iWrap - INTERPOS/9.1.0-intel-2020b - XMLlib/3.3.1-intel-2020b
3.1.2. Configuration files
3.1.2.1. Actor configuration
There is YAML file in the configs directory called actor_configuration.yml
that contain metadata about the actor being tested. For now, only the fields: actor name
and relative path
from the project root to the actor description file are to be set.
├── configs │ ├── actor_configuration.yml # <-- this file │ └── ids_configuration.yml ############################################## - example: inside actor_configuration.yml: ############################################## actor_name: NAME actor_path: actor/description/file.yaml