无法从 Gitlab CI 中的 shell 脚本获取输出

dea*_*ger 7 shell gitlab

我已经在我的 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 设置的。可能的原因是什么?或者我错过了什么?

Dre*_*ing 5

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)