Хорошо, позвольте мне поделиться с вами своим подходом к этому. Я использую GitLab CI, который, я думаю, может быть похожим.
В моем репозитории у меня есть файл rosinstall , включая пакеты, которые мне нужно собрать из исходного кода.
В моем случае coscr.rosinstall выглядит как
- git:
local-name: ira_laser_tools
uri: https://github.com/iralabdisco/ira_laser_tools.git
version: master
Затем в моем файле .gitlab-ci.yml я обрабатываю его так:
stages:
- build
- test
image: osrf/ros:melodic-desktop-full
before_script:
- apt-get update && apt-get upgrade -y
- apt-get install -y python-rosinstall python-rosinstall-generator python-wstool build-essential
- apt-get install -y alsa-utils
- apt-get clean
- mkdir -p ~/catkin_ws/src
build:
stage: build
script:
- cd ~/catkin_ws/src
- git clone https://gitlab.com/______/cs_monster.git
- cd ~/catkin_ws
- wstool init src src/cs_monster/coscr.rosinstall
- rosdep install --from-paths src --ignore-src -r -y
- catkin_make -DCMAKE_BUILD_TYPE=Release
Вы можете видеть, как я использую rosdep , чтобы сделать трюк. Насколько я помню, это работало. В любом случае, я надеюсь, что это может дать вам некоторые подсказки.