有几个嵌入式Linux设备通过以太网连接。目标是在一个可用的设备上安装由以前的管道生成的软件映像。成功上传图像后,将执行一组Python测试。
为了管理不同的IP地址,我使用了一个跑步者,多个工作者的概念。对于每个工人,我定义了一个指向设备的变量DUT_IP
。对于管道中的单个作业,这按预期工作。
concurrent = 2
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "Laboratory Tests runner #2"
url = "https://gitlab-ee.dev.ifm/"
token = "XXXXX"
executor = "docker"
environment = ["DUT_IP=192.168.0.70"]
[[runners]]
name = "Laboratory Tests runner #1"
url = "https://gitlab-ee.dev.ifm/"
token = "XXXXXX"
executor = "docker"
environment = ["DUT_IP=192.168.0.71"]
通过使用资源组,可以防止在同一设备上执行多个作业。从我的理解来看,这并不能确保作业按照特定的顺序执行。我需要确保的是,对于每个管道执行以下步骤:
- 固件更新 Python测试
- 测试结果上传
当然我可以把所有的东西放在一个单一的工作,这将变得相当大。还有其他更一般的解吗?也许是动态环境。不幸的是,我在网上找不到任何关于这种设置的好的蓝图。
我目前对设备管理的解决方案是使用带标签的labgrid。请在labgrid讨论中查看我的答案https://github.com/labgrid-project/labgrid/discussions/1244#discussioncomment-6509711