CI Configuration Overview - dfki-ric/phobos GitHub Wiki
Phobos-CI is a mighty tool to maintain several various representation versions of one robot, while keeping them in sync and tested. Phobos-CI has currently only been tested with GitLab-CI. Therefore this documentation only applies for this use case. However, the usage with other CIs should work accordingly. The here proposed CI works in an autoproj workspace.
Using the Phobos-CI you can assemble a robot representation from parts and the create different derivations of robot representations.
[TOC]
Repository icons and their meaning
When integrating a Phobos-CI a lot of repositories in a subgroup are necessary. It makes sense to make the different repositories easily distinguishable. This can be done both by a name-prefix and an icon. Phobos provides the following icons, but feel free to create your own that suit you the best:
- For repositories that contain input data and do NOT trigger a pipeline run.
- For repositories that contain input data and do trigger a pipeline run.
- For the model definition/config repository (triggers a pipeline run).
- For repositories that contain pipeline scripts/data (like this repo, package_sets, ...).
- For repositories that contain the result model generated by the CI.
Directory structure
The structure must look like this:
$CI_ROOT_DIRECTORY
ββββ $INPUT_MODEL_REPO1
ββββ $INPUT_MODEL_REPO2
ββββ ... (Several input repositories)
ββββ $PIPELINE_DEFINITION_REPO
ββββ $CENTRAL_MESHES_DRIECTORY
β ββββ $STL_MESHES_REPO
β ββββ $DAE_MESHES_REPO
β ββββ $OBJ_MESHES_REPO
β ββββ $BOBJ_MESHES_REPO
β ββββ $MARS_OBJ_MESHES_REPO
ββββ ... (The target model repositories) e.g.:
ββββ "robot-model" (an output repository)
β ββββsmurf/
β ββββurdf/
β ββββsubmodels/
β ββββmeshes/stl/ (SUBMODULE)
β ββββ...
ββββ ... (for each model version an output repository)
ββββ temp !!! This directory will be created and deleted by the CI.
ββββ temp_robot-model contains data used for processing and testing the new robot-model
ββββ robot-model contains the new version to replace the robot-model directory above during the deploy job
ββββ smurf/
ββββ urdf/
ββββ submodels/
ββββ meshes/stl/ (SYM-LINK)
ββββ ... further directories, e.g. 'submechanisms' etc.
The pipeline will be triggered by changes in the $PIPELINE_DEFINITION_REPO
.
If you make changes to any input model repository, you have to trigger the build manually.
As the meshes might be used by more than one model these have own repositories which are included in the models using git-submodules.
For the meshes git-lfs is supported to use it, it is necessary to have the name of the meshes repository beginning with "lfs".
Input Model Repositories
These repo contains the models you obtain e.g. from a CAD and then are used as input models in the Model Definition files.
Pipeline Definition Repository
This repository contains the definition of the pipeline and the models to create. The manifest.xml of this repo has to have all repos for the results listed as dependency. The model definition repo should be listed in the manifest.xml of this repo to have all the models available in the docker for faster processing on the commit. Further info: