My previous attempt at detecting accidental rclpy dependencies was a failure.
The problem
in the test_isolated job, the osrf/ros2:nightly docker image was sourcing /opt/ros/crystal/setup.bash automatically, so the test job was using dependencies from outside of the isolated install directory
Note for reviewer
The three commits here each show one stage of the fix.
82679a0 - This commit fixes the .gitlab-ci.yml file and makes build_isolated and test_isolated jobs run all the time. Take a look at the full pipeline here. If you look at the test logs you can see that the test failed because ros2launch was not found (imported in apex_runner)
==================================== ERRORS ====================================
_____________ ERROR collecting test/test_apex_runner_validation.py _____________
ImportError while importing test module '/builds/ApexAI/apex_rostest/apex_launchtest/test/test_apex_runner_validation.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/test_apex_runner_validation.py:17: in <module>
from apex_launchtest.apex_runner import ApexRunner
apex_launchtest/apex_runner.py:25: in <module>
from ros2launch.api.api import parse_launch_arguments
E ModuleNotFoundError: No module named 'ros2launch'
_________________ ERROR collecting test/test_runner_results.py _________________
ImportError while importing test module '/builds/ApexAI/apex_rostest/apex_launchtest/test/test_runner_results.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
test/test_runner_results.py:23: in <module>
from apex_launchtest.apex_runner import ApexRunner
apex_launchtest/apex_runner.py:25: in <module>
from ros2launch.api.api import parse_launch_arguments
E ModuleNotFoundError: No module named 'ros2launch'
- generated xml file: /builds/ApexAI/apex_rostest/build/apex_launchtest/pytest.xml -
!!!!!!!!!!!!!!!!!!! Interrupted: 2 errors during collection !!!!!!!!!!!!!!!!!!!!
==================== 2 deselected, 2 error in 0.82 seconds =====================
ea8dd53 - This commit gets rid of the ros2launch dependency. This pipeline passes
4e28ccd - This commit sets the build_isolated and test_isolated jobs back to "scheduled only." Notice that these jobs are missing from the pipeline
My previous attempt at detecting accidental rclpy dependencies was a failure.
The problem
in the test_isolated job, the osrf/ros2:nightly docker image was sourcing /opt/ros/crystal/setup.bash automatically, so the test job was using dependencies from outside of the isolated install directory
Note for reviewer
The three commits here each show one stage of the fix.