robotology / whole-body-estimators

YARP devices that implement estimators for humanoid robots.
27 stars 12 forks source link

Add Conda-based Continuous Integration job #117

Closed traversaro closed 3 years ago

traversaro commented 3 years ago

While working on https://github.com/robotology/whole-body-estimators/pull/116, I noticed that the current CI is quite slow. In this PR I added a conda-based CI using the template already followed in other repos that should provide feedback on a PR much faster.

traversaro commented 3 years ago

Even though there are some lines I don't fully understand, but the overall structure is clear to me and seems fine!

Feel free to ask if you have any specific doubt.

HosameldinMohamed commented 3 years ago

Feel free to ask if you have any specific doubt.

Thanks @traversaro! they are really minor, just to complete my understanding.. I know I can find out doing some searching around.

  • uses: conda-incubator/setup-miniconda@v2

I didn't understand this line.

    cmake -GNinja -DBUILD_TESTING:BOOL=ON \

-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ..

The letter -G before the arguments.

shell: bash -l {0}

Also the -l {0}, what does it do?

traversaro commented 3 years ago
  • uses: conda-incubator/setup-miniconda@v2

I didn't understand this line.

This line specify that the setup-miniconda GitHub Action is used, it is a GitHub Action that simplify the use of conda-installed dependencies. See https://github.com/conda-incubator/setup-miniconda for more info. Note that despite its name, the action can be used also to install miniforge or similar installer based on conda-forge .

The letter -G before the arguments.

-G in CMake is used to specify the generator used (see https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html). By default on Unix systems the Unix Makefiles Generator is used, in this template/boilerplate I tipically use ninja as it can be faster (even if for such a small project it probably does not make a difference)

Also the -l {0}, what does it do?

I am not really sure about this, but it is required by the setup-miniconda action to properly activate the conda environment, see for more info https://github.com/conda-incubator/setup-miniconda#important .

prashanthr05 commented 3 years ago

Also the -l {0}, what does it do?

I am not really sure about this, but it is required by the setup-miniconda action to properly activate the conda environment, see for more info https://github.com/conda-incubator/setup-miniconda#important .

According to this answer, it basically runs the specified lines within run tag using the bash. https://stackoverflow.com/questions/66283887/what-does-shell-bin-bash-e-0-mean-in-bash-shell-output-from-a-github-action

HosameldinMohamed commented 3 years ago

I merged the PR before doing:

I'll open another PR to do that. And update the release v0.5.1.

HosameldinMohamed commented 3 years ago

I'll open another PR to do that. And update the release v0.5.1.

PR #118