2017-09-16 82 views
0

新的Gitlab,所以可能是一個noob問題(並道歉,如果這已被問我找不到任何答案搜索)。如何在Gitlab CI中調試Rails錯誤?

我剛剛將我的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)>' 

現在的問題是,我不能在我的本地回購重現此。所以,我不確定如何最好地進行調試,因爲我不認爲應該首先發生(當然,與其他所有策略文件相比,這個未使用的策略文件中並不存在)。

所以,有幾個問題:

  1. 我怎樣才能登錄到控制檯CI調試這個?
  2. 任何提示或想法可能會發生什麼?
  3. 如果我需要(如果不是每提交消息,但通常是項目),我如何關閉CI?

任何幫助非常感謝,謝謝!

回答

1

不幸的是使用部署服務(例如Kubernetes)時

然而web terminals只適用,如果你有機會獲得亞軍,你可以手動通過ssh登錄並使用gitlab亞軍二進制執行(即使用gitlab-runner exec命令)從git repo克隆的失敗作業。

如果你沒有獲得亞軍,但你使用基於多克爾的作業,你總是可以在本地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

+0

謝謝大家了答案。我沒有Docker鏡像,並且正在使用它們的默認CI/CD環境。所以我想我沒有太多的工作可以調試:/ – geoboy

+0

@geoboy哦,你不需要你自己的docker鏡像。如果你使用他們共享的跑步者,那意味着爲你設置的配置可能是docker運行一些ruby基礎鏡像。請參閱https://gitlab.com/ayufan/ruby-getting-started/blob/master/.gitlab-ci.yml,瞭解GitLab的CI示例ruby應用程序。 – Alfageme