我的项目在Windows和Linux下构建。我在Windows上设置了gitlab-runner,在Linux机器上设置了一个。现在,我想配置“ .gitlab-ci.yml”以便在两台机器上进行构建。但是,根据操作系统,我想为该构建调用其他构建脚本。
示例“ .gitlab-ci.yaml”(不起作用)
mybuild:
# on linux
script:
- ./build-linux.sh
# on windows
script
- buildwin.bat
如何在.gitlab-ci.yml中实现此目标?
答案 0 :(得分:1)
不能。实现此目标的方法是
复制作业,仅在带有“ linux-runner”标记的跑步者上运行一个作业,而第二个作业仅在带有“ windows-runner”标记的跑步者上运行。
linux build:
stage: build
tags:
- linux-runner
script:
- ./build-linux.sh
windows build:
stage: build
tags:
- windows-runner
script:
- buildwin.bat
答案 1 :(得分:1)
通常建议创建两个作业的解决方案不符合我的需求。我需要的是能够使用Windows或Linux / MacOS运行程序,无论可用的是什么。
我建议的技巧是在call
中创建一个/usr/local/bin
脚本,以便它可以模仿Windows call
命令:
#/bin/bash
./$*
例如,如果要调用Gradle包装器,则只需编写gitlab-ci.yml
:
script:
- call gradle
它还可以与特定的脚本一起使用(例如,对于Windows为“ build.bat”,对于MacOS / Linux为“ build”):
script:
- call build
我希望这会帮助和我有同样需求的人。