如何在 Gitlab CI 中调试 Rails 错误?
How to debug Rails errors in Gitlab CI?
我是 Gitlab 的新手,所以这可能是一个初学者问题。
我刚刚将我的 Rails 存储库迁移到 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)>'
现在的问题是我无法在我的本地存储库中重现它。所以,我不确定如何最好地调试它,因为我认为首先不应该发生(当然,与所有其他策略文件相比,不在这个未使用的策略文件中)。
所以,有几个问题:
- 如何登录 CI 控制台进行调试?
- 任何提示或想法可能会发生什么?
- 如果需要,我如何关闭 CI(不是针对每个提交消息,但通常针对项目)?
遗憾的是 web terminals 仅在使用部署服务(例如 Kubernetes)时可用
但是,如果您可以访问 运行ner,您可以通过 ssh 手动登录并使用 gitlab-运行ner 二进制文件执行(即使用 gitlab-runner exec
命令)它克隆的 git 仓库中的失败作业。
如果您无法访问 运行ner 但您正在使用基于 Docker 的作业,您始终可以在本地使用 GitLab Runner 二进制文件作为您的 OS 到 运行 并调试你的工作:
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,您可以在项目的常规设置中关闭 "Pipelines" 开关:
我是 Gitlab 的新手,所以这可能是一个初学者问题。
我刚刚将我的 Rails 存储库迁移到 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)>'
现在的问题是我无法在我的本地存储库中重现它。所以,我不确定如何最好地调试它,因为我认为首先不应该发生(当然,与所有其他策略文件相比,不在这个未使用的策略文件中)。
所以,有几个问题:
- 如何登录 CI 控制台进行调试?
- 任何提示或想法可能会发生什么?
- 如果需要,我如何关闭 CI(不是针对每个提交消息,但通常针对项目)?
遗憾的是 web terminals 仅在使用部署服务(例如 Kubernetes)时可用
但是,如果您可以访问 运行ner,您可以通过 ssh 手动登录并使用 gitlab-运行ner 二进制文件执行(即使用 gitlab-runner exec
命令)它克隆的 git 仓库中的失败作业。
如果您无法访问 运行ner 但您正在使用基于 Docker 的作业,您始终可以在本地使用 GitLab Runner 二进制文件作为您的 OS 到 运行 并调试你的工作:
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,您可以在项目的常规设置中关闭 "Pipelines" 开关: