Shell 类型的 Runner 不工作:作业失败(系统故障):准备环境:

The Runner of type Shell don't work: Job failed (system failure): preparing environment:

1-环境:

2-.gitlab-ci.yml 文件:

before_script:
  - echo "--------- STARTING WORK ------------"

job_homologacao:
   only:
     - homologation
   script:
     - cd /home/ati/
     - mkdir test
     - echo "got here"

job_producao:
   only:
     - master
   script:
     - cd /home/ati/test/
     - echo "got here"

3-runner执行时报错: 运行 gitlab-runner 13.2.1 (efa30e33) on runner with Akx_BvYF shell 准备“shell”表演者 使用 Shell 执行器 ... 准备环境 运行关于爱马仕... 错误:作业失败(系统故障):准备环境:退出状态 1。检查 https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading 了解更多信息

4次更正尝试: 我阅读并执行了文档中包含的所有程序:

这些你查了吗?

  • Debian 用户应该使用 APT pinning,因为 Debian Stretch 中有一个名为 gitlab-ci-multi-runner 的本地包,默认情况下,在安装 gitlab-runner 时,该包来自官方cial 存储库的优先级更高。

  • 此外,安装 GitLab Runner 时一定要禁用 SKEL:在安装包之前将环境变量 GITLAB_RUNNER_DISABLE_SKEL 设置为 true

有关两者的详细信息,请参阅 https://docs.gitlab.com/runner/install/linux-repository.html#apt-pinning

我错误地编辑了位于我的主页 /home/ati/

中的文件 .bash_logout

安装Gitlab时gitlab-runner/home/gitlab-runner/

中为其创建一个Home

我只需要对 /home/gitlab-runner/.bash_logout 文件的内容发表评论才能使作业生效。

如果您的跑步者在 Ubuntu 20.04,请查看:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26605

解决方案:

sudo rm /home/gitlab-runner/.bash_logout

首先找出gitlab runner的主目录。

$ ps aux | grep gitlab-runner
/usr/bin/gitlab-runner run --working-directory /var/lib/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner

现在,检查 .bash_logout 是否存在。

$ ls -lah /var/lib/gitlab-runner/
total 20K
drwxr-xr-x  4 gitlab-runner root          4.0K Dec  1 02:53 .
drwxr-xr-x 42 root          root          4.0K Nov 11 03:29 ..
-rwxr--r--  1 gitlab-runner gitlab-runner   30 Dec  1 02:53 .bash_logout
drwxr-xr-x  2 gitlab-runner gitlab-runner 4.0K Dec  1 02:26 .terraform.d
drwxrwxr-x  3 gitlab-runner gitlab-runner 4.0K Nov 11 03:23 builds

最后,打开.bash_logout文件,注释掉所有行并保存。

 $ vim /var/lib/gitlab-runner/.bash_logout
 # ~/.bash_logout: executed by bash(1) when login shell exits.

 # when leaving the console clear the screen to increase privacy

 #if [ "$SHLVL" = 1 ]; then
 #    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
 #fi

ps:最初的答案是由 Jonathan Allen 给出的 Jonathan Allen (@sc_jallen) 关于 gilab-runner 问题。

升级Ubuntu18.04到20.04后,我也被这个bug击中了。 删除 .bash_logout 对我有用。