使用GitLab CI运行批处理文件并获取输出

3
我可以帮您翻译。以下是翻译结果,保留原文中的HTML标签。

我已经在GitLab项目中设置了两个文件:一个批处理文件,只打印“hello world”,另一个文件是.gitlab-ci.yml文件,它执行流水线。

批处理文件中的代码为:

ECHO OFF
ECHO 'Hello World'
PAUSE

gitlab-ci.yml 文件中包含测试阶段:
test:
    stage: test
    script:
        - echo 'test'
        - chmod +x ./hello-world.bat

当我进行任何更改时,管道开始并成功执行,但是我没有从批处理文件中获得所需的输出。我在这里漏掉了什么?
管道结果如下: pipeline-result
2个回答

1
作为在Windows上使用gitlab-ci runner的用户,我创建了一个Python脚本并将其推送到自托管的GitHub实例。在该Python脚本中,我只需触发.bat脚本,然后运行并显示项目流水线输出。
该脚本如下所示:
import subprocess
subprocess.call([r'C:\hello.bat'])

这就是我想要的。

1
从我看到的情况来看,你只是给文件添加了+x权限,使其可执行,但实际上并没有运行它。
如果你修改你的gitlab-ci.yml为:
test:
    stage: test
    script:
        - echo 'test'
        - chmod +x ./hello-world.bat
        - ./hello-world.bat

话虽如此,我不能百分之百确定这会起作用。因为这似乎是在Linux系统上运行,而.bat脚本是为基于Windows的系统设计的。 请参考bash脚本以了解其工作原理。


对我有用,只需删除前面的“./” - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接