负责每日构建过程的有两个主要脚本: <SUMO_HOME>/tools/build_config/dailyUpdateMakeGCC.sh(用于 Linux 部分)和用于 Windows 的 <SUMO_HOME>/tools/build_config/dailyBuildMSVC.py。本质上,它们都执行以下步骤:
- git pull
- 进行干净构建(发布版和调试版)
- 运行单元测试(目前仅限 Linux)
- 构建并上传软件包
- 构建并上传文档(仅限 Linux)
- 运行验收测试(texttest)
- 上传测试结果
所有结果都可以在 sumo 网页空间上的 daily 目录中找到,另请参阅 Downloads#Nightly_Snapshots。 基于运行每日测试的覆盖率信息也会生成。状态可以在 sumo 网页空间 找到。
在 Sumo/daily 目录(包括最新的游戏场景)和 DLR 内部的 tsall NAS 中也有一个本地副本。Windows 脚本使用本地目录中的 sumo-all 包来构建二进制可分发 zip 和游戏 zip。
最后一步是触发 opensuse 构建服务上的每日构建。这是通过 cronjob 上传一个新的 spec 文件来实现的,该文件会触发源代码的自动下载和重新构建。所有错误和测试结果电子邮件都会发送到 dlr.de 的 sumo-tests 邮件列表,但构建服务错误除外,这些错误会发送到私人帐户,因为该构建目前位于私人项目中。
持续集成 (Continuous integration)#
在 GitHub 和 AppVeyor 上有持续集成构建。 两者都配置为在发生新提交时取消正在运行的构建,因此我们不会拥有所有提交的构建结果(但我们以此避免大量积压)。
要获取构建日志,请单击提交消息旁边的标记(红色十字、黄色圆圈或绿色勾号),然后选择相关构建的详细信息。
AppVeyor 构建还提供二进制文件下载(目前在提交后约六个月内)。要下载,请从 https://github.com/eclipse-sumo/sumo/commits/main 选择相关提交的标记(如上所述)的详细信息,然后选择相关的 Visual Studio 版本(如有疑问,请使用最新版本),然后单击 artifacts,其中应提供 bin.zip。
平台和测试#
- "sumo" 指没有可选库的原始 Eclipse SUMO 版本
- "extra" 表示带有 GDAL、OSG 和 FFMPEG 的变体,运行介观和 python3 测试
- clang 构建通过配置选项 "--enable-debug" 启用了调试代码
- 所有开始时间均为柏林当地时间
| 变体 (variant) | 平台 / 编译器 (platform / compiler) | 开始时间 (start time) | 预计持续时间 (estimated duration) |
|---|---|---|---|
| sumo | Win32 msvc12 | 01:00 | 1h |
| sumo | Win64 msvc12 | (在 32 位之后) | 4h |
| extra | Win64 msvc12 | 07:00 | 2h |
| sumo | ubuntu64 gcc | 00:00 | 3h |
| extra | ubuntu64 gcc | 07:00 | 1h |
| sumo | ubuntu64 clang | 03:00 | 4h |
| extra | ubuntu64 clang | 08:00 | 1.5h |
| sumo | macOS clang | 00:00 | 1h |
场景测试 (Scenario tests)#
- "scenario" 指可在 source:trunk/tests 找到的内部测试,包括默认测试和每日测试
- "weekly" 是可在 source:trunk/tests 找到的内部测试的每周测试套件
- 所有场景测试均使用 sumo 的 "extra" 变体运行
| 变体 (variant) | 平台 (platform) | 开始时间 (start time) | 预计持续时间 (estimated duration) |
|---|---|---|---|
| scenario | 64 bit gcc | 02:00 | 5h ? |
| scenario weekly | 64 bit gcc | 02:00 (仅周六) | 72h ? |
| scenario | 64 bit clang | 02:00 (仅周一至周五) | 8h ? |
