![Join the chat at []]([] 
jsk_travis是一个用于在Travis和Jenkins上测试ROS仓库的Docker镜像。默认情况下,hydro发行版的测试使用Travis,indigo和jade发行版则默认使用Jenkins。在Travis上可启用Docker以测试多个发行版。可通过USE_DOCKER、USE_TRAVIS和USE_JENKINS环境变量手动配置测试环境。Jenkins服务器地址为jenkins.jsk.imi.i.u-tokyo.ac.jp。
.travis.rosinstall指定依赖解析规则适用于需要在Travis或Jenkins上进行自动化测试的ROS项目开发者,特别是:
jsk_travis需作为子模块添加到.travis目录:
bashgit submodule add https://github.com/jsk-ros-pkg/jsk_travis.git .travis
每个项目需设置.travis.yml文件,https://github.com/jsk-ros-pkg/jsk_common/blob/master/.travis.yml%E6%98%AF%E4%B8%80%E4%B8%AA%E9%85%8D%E7%BD%AE%E7%A4%BA%E4%BE%8B%E3%80%82%E6%B3%A8%E6%84%8F%EF%BC%9Ajsk_travis%E4%BB%85%E6%94%AF%E6%8C%81%E5%8D%87%E7%BA%A7%EF%BC%8C%E9%99%8D%E7%BA%A7jsk_travis%E7%9A%84PR%E5%B0%86%E5%AF%BC%E8%87%B4%E6%B5%8B%E8%AF%95%E5%A4%B1%E8%B4%A5%E3%80%82
参考https://github.com/jsk-ros-pkg/jsk_common#restart-travis-from-slack
基础配置变量
BEFORE_SCRIPT(默认:无)
用于指定构建包之前运行的shell命令。在Jenkins上,部分字符需要进行XML转义(详见:https://github.com/jsk-ros-pkg/jsk_travis/issues/171%EF%BC%89%E3%80%82
BUILD_PKGS(默认:无)
指定要构建和测试的包。若仓库中某些包有问题,可通过此选项忽略,例如:BUILD_PKGS="jsk_pcl_ros jsk_recognition_msgs"。
EXTRA_DEB(默认:无)
指定额外的deb包,这些包将在构建前安装。
ROS_DISTRO(必填)
指定目标ROS发行版,目前支持hydro、indigo和jade。指定indigo或jade时,测试将自动在Jenkins上运行。
ROS_PYTHON_VERSION(默认:无)
指定ROS使用的Python版本(Noetic及以上可用)。详见使用Python3构建和https://github.com/ros-infrastructure/rep/blob/master/rep-0149.rst%E3%80%82
环境选择变量
USE_DEB(值:true|false|source)
false:Travis首先通过配置文件解析依赖,然后通过apt安装剩余依赖source:Travis不使用配置文件,而是运行setup_upstream.sh文件(示例见https://github.com/jsk-ros-pkg/jsk_roseus%EF%BC%89USE_DOCKER(默认:false)
强制在Travis上使用Docker。
DOCKER_IMAGE_JENKINS(默认:ros-ubuntu:$(lsb_release -sr))
Jenkins中使用的Docker镜像。
DOCKER_RUN_OPTION(默认:--rm)
若USE_DOCKER为true,传递给docker run的选项。注意:若未设置--rm,容器将在任务结束后保留,需手动清理。
USE_JENKINS(默认:false)
强制在Jenkins上运行测试。Jenkins服务器比Travis环境更强大,可用于编译PCL相关包(如https://github.com/jsk-ros-pkg/jsk_recognition.git%EF%BC%89%E3%80%82%E5%9C%A8%E5%9F%BA%E4%BA%8E%E5%AE%B9%E5%99%A8%E7%9A%84Travis%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%BF%90%E8%A1%8C%E6%B5%8B%E8%AF%95%E6%97%B6%EF%BC%8C%E9%9C%80%E5%B0%86%E6%AD%A4%E5%8F%98%E9%87%8F%E8%AE%BE%E4%B8%BA%60true%60%E3%80%82%E6%AD%A4%E5%8F%98%E9%87%8F%E4%BC%9A%E8%A6%86%E7%9B%96%E6%B5%8B%E8%AF%95%E7%8E%AF%E5%A2%83%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E3%80%82
USE_TRAVIS(默认:false)
强制在Travis上运行测试。此变量会覆盖测试环境默认配置。
构建和测试选项
CATKIN_PARALLEL_TEST_JOBS(默认:-p4)
测试中catkin的并行进程数。
CATKIN_TOOLS_BUILD_OPTIONS(默认:catkin-tools==0.3.X版本为-iv --summarize --no-status,其他版本为--summarize --no-status)
传递给catkin build的选项,格式如catkin build $CATKIN_TOOLS_BUILD_OPTIONS。
CATKIN_TOOLS_CONFIG_OPTIONS(默认:无)
传递给catkin config的选项,格式如catkin config $CATKIN_TOOLS_CONFIG_OPTIONS。
ROS_PARALLEL_TEST_JOBS(默认:-j8)
测试中make的并行进程数。
ROSDEP_ADDITIONAL_OPTIONS(默认:-n -q -r --ignore-src)
rosdep install时传递的选项。
NOT_TEST_INSTALL(值:无或true,默认:无)
跳过catkin install测试(仅测试devel构建)的标志。
CMAKE_DEVELOPER_ERROR(值:无或true,默认:无)
在catkin run_tests中显示CMake开发者错误的标志。
ADDITIONAL_ENV_TO_DOCKER(默认:无)
指定要传递给Travis/Jenkins中Docker的环境变量,多个变量用空格分隔,例如:IS_EUSLISP_TRAVIS_TEST IS_GAZEBO_TRAVIS_TEST。
DEBUG_TRAVIS_PYTHON(默认:无)
指定在Travis/Docker/Jenkins中运行的Python命令,例如设置为python -v。
.travis.rosinstall、.travis.rosinstall.{{ ROS_DISTRO }}USE_DEB为false时,.travis.rosinstall用于生成ROS工作空间。可通过.travis.rosinstall.{{ ROS_DISTRO }}指定发行版特定配置,例如.travis.rosinstall.indigo。由于存在CATKIN_IGNORE文件,发布jsk_travis包的步骤较为特殊:
bashmv CATKIN_IGNORE CATKIN_IGNORE.bak catkin_generate_changelog emacs -nw CHANGELOG.rst # 美化CHANGELOG以明确变更内容 git commit -m "update CHANGELOG" CHANGELOG.rst catkin_prepare_release --no-push # 请对所有提示输入"Y" mv CATKIN_IGNORE.bak CATKIN_IGNORE # 不要忘记此步骤 gitk # 确认变更内容正确 git push && git push --tags
bashcd docker; make
此命令将为各发行版构建基础镜像,如ros-ubuntu:12.04-base、ros-ubuntu:14.04-base、ros-ubuntu:16.04-base等,以及安装了PCL的镜像如ros-ubuntu:14.04-pcl、ros-ubuntu:16.04-pcl等。每天会通过--build-arg CACHEBUST=$(date +%Y%m%d)重新构建镜像。注意:ros-ubuntu:14.04用于构建过程,不建议用户直接运行,应使用ros-ubuntu:14.04-base。
若将jsk_travis作为子模块添加,修改后难以通过Travis测试,建议临时将子模块替换为自己的fork版本。示例提交见https://github.com/jsk-ros-pkg/jsk_common/commit/eb8c2cf76edc01e074451f2028a0bc6a36582805%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务