每日构建 (Nightly Build)

负责每日构建过程的有两个主要脚本: <SUMO_HOME>/tools/build_config/dailyUpdateMakeGCC.sh(用于 Linux 部分)和用于 Windows 的 <SUMO_HOME>/tools/build_config/dailyBuildMSVC.py。本质上,它们都执行以下步骤:

  1. git pull
  2. 进行干净构建(发布版和调试版)
  3. 运行单元测试(目前仅限 Linux)
  4. 构建并上传软件包
  5. 构建并上传文档(仅限 Linux)
  6. 运行验收测试(texttest)
  7. 上传测试结果

所有结果都可以在 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)#

GitHubAppVeyor 上有持续集成构建。 两者都配置为在发生新提交时取消正在运行的构建,因此我们不会拥有所有提交的构建结果(但我们以此避免大量积压)。

要获取构建日志,请单击提交消息旁边的标记(红色十字、黄色圆圈或绿色勾号),然后选择相关构建的详细信息。

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 ?