我已经在我的 Windows 上设置了 gitlab 运行程序。我有一个build.sh
脚本,其中我只是回响“Hello world”。我在我的文件中提供了这些行gitlab-ci.yml
:
build:
stage: build
script:
- ./build.sh
Run Code Online (Sandbox Code Playgroud)
运行程序执行此作业,但不打印我在build.sh
文件中提到的 echo 命令。但如果我更改了扩展名,.bat
它就会起作用并显示输出。是gitlab-runner
为 shell 设置的。可能的原因是什么?或者我错过了什么?
GitLab 将输出最终写入 STDOUT 或 STDERR 的任何内容。如果没有看到整个脚本,很难说发生了什么,但我想不知何故,你实际上并没有回显到 STDOUT。这就是为什么输出没有最终出现在 CI 输出中的原因。
为了测试这一点,我在 GitLab.com 上创建了一个测试项目。我的测试中的一个区别是我的 CI YAML 脚本命令是sh build.sh
. 这是因为该脚本不可执行,因此无法使用./build.sh
.
builds.sh
文件:
#!/bin/bash
echo "This is output from build.sh"
Run Code Online (Sandbox Code Playgroud)
.gitlab-ci.yml
文件:
build:
stage: build
script:
- sh build.sh
Run Code Online (Sandbox Code Playgroud)
构建输出:
Running with gitlab-runner 12.3.0-rc1 (afb9fab4)
on docker-auto-scale 72989761
...
Fetching changes with git depth set to 50...
Initialized empty Git repository in /builds/dblessing/ci-output-test/.git/
Created fresh repository.
Checking out cfe8a4ee as master...
Skipping Git submodules setup
$ sh build.sh
This is output from build.sh
Job succeeded
Run Code Online (Sandbox Code Playgroud)