我在我的存储库中测试了许多配置。其中一些是特定于平台的,我用标签来控制它们。
linux_specific_build:
stage: build
tags:
- linux
script:
- rm -rf build
- mkdir build
- cd build
- cmake ../src/. -DCMAKE_BUILD_TYPE:STRING=Release
- make -j 4
这很好,因为我知道这个脚本将始终在其中一个Linux运行器上运行,但我也有Windows运行器。
我可以以跨平台方式构建cmake --build .
可行,但它无法使用多个核心。我实际上在清理构建目录时遇到了更多麻烦。 Windows中不存在rm -rf
(等效于rmdir /s /q
)。
.gitlab-ci.yml是否有办法根据标签或跑步者平台为同一作业指定不同的脚本?我不想或不需要(事实上,我强烈不愿意)在每个平台上构建每个配置。