如何在Gitlab CI中调试Rails错误?

时间:2017-09-16 21:14:37

标签: ruby-on-rails gitlab gitlab-ci

我是Gitlab的新手,所以这可能是一个初学者的问题。

我刚刚将我的Rails repo迁移到Gitlab - 非常基本,还没有测试。但似乎CI管道似乎在这里失败了:

$ rails db:migrate
rails aborted!
NameError: uninitialized constant ApplicationPolicy
/builds/sapi/app/policies/request_update_policy.rb:1:in `<top (required)>'
/builds/sapi/config/application.rb:28:in `each'
/builds/sapi/config/application.rb:28:in `<class:Application>'
/builds/sapi/config/application.rb:20:in `<module:SDOTApi>'
/builds/sapi/config/application.rb:19:in `<top (required)>'

现在的问题是我无法在我的本地仓库中重现这一点。所以,我不确定如何最好地调试这个,因为我认为不应该首先发生(当然,与所有其他策略文件相比,不在这个未使用的策略文件中)。

所以,有几个问题:

  1. 如何登录CI控制台进行调试?
  2. 任何提示或想法可能会发生什么?
  3. 如果需要,我如何关闭CI(不是每次提交消息,但一般来说是项目)?

1 个答案:

答案 0 :(得分:2)

不幸的是web terminals仅在使用部署服务时可用(例如Kubernetes)

但是,如果您有权访问跑步者,您可以通过ssh手动登录并使用gitlab-runner二进制文件来执行(即使用gitlab-runner exec命令)来自克隆的git repo的失败作业。 / p>

如果您无法访问跑步者,但是您正在使用基于Docker的作业,则可以始终在本地使用GitLab Runner二进制文件来运行和调试您的作业:

cd <project-root>
/usr/local/bin/gitlab-runner exec docker <job-name>

失败后,您可以重新启动它产生的容器来运行终端(使用docker exec)并调试其中出错的地方。您可以在https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-to-debug-a-job-locally

中对此进行更全面的解释

要禁用整个项目的CI,可以在项目的常规设置中关闭“管道”开关:

disable_gitlab_ci_project