Build CI Pipeline for integration tests

Description

The objective of the integration test it to highlight changes to the aircraft xml file caused by a modification of a tool. A detailed documentation can be found in our documentation (Some minor things have to be updated, such as the default branch, but in general the procedure holds.)

In short: After a module change being pushed on a remote branch, the CI Pipeline is triggered (As soon as the scripts are merged on main). This pipeline builds the current main version of the module and builds the current version of the module with its modifications. The design_evaluator module (from utilities) compares both impacts on a converged aircraft xml file. If the build fails, the pipeline fails. If there are changes in the results on the aircraft xml, the pipeline throws a warning. If there are no changes, the pipeline passes.

The pipeline is currently executed on unix docker so the first to do is, to

  • implement a windows test pipeline

Since every module generates its own outputs for the aircraft xml - The design evaluator needs a config file for every module. So design_evaluator configs have to be written for

  • ecological_assessment,
  • performance_assessment,
  • aerodynamic_analysis,
  • cost_estimation,
  • create_mission_xml,
  • empennage_design,
  • fuselage_design,
  • tank_design,
  • initial_sizing,
  • landing_gear_design,
  • weight_and_balance_analysis,
  • mission_analysis,
  • propulsion_design,
  • systems_design,
  • wing_design,
  • constraint_analysis

In the config file every entry (parameter / variable / value) which is produced from the respective module in the aircraft xml must be listed in the config file.

A template is attached here for propulsion_design: design_evaluator_conf_propulsion_design.xml

When you have created your config file:

  • On the utilities repo check out the following branch /feature/design_evaluator_adaptions
  • Paste your config file in the design_evaluator folder (You will find the xml from above)
  • Check the box above, that you are done for your module

Some modules have the ability to produce an IOinfo file (In config, switch write_info_files to true). In these info files the produced output paths are already written down (Therefore: copy paste task):

Side info: The design_evaluator generates a very simple html report, where the differences of old versus modified version are listed. Here is a snippet from the result: image

Edited by Maurice Zimmnau