2015-12-12 74 views
0

現狀:PHP-CI,作曲家依賴和私人github上庫

  • 我有一個私人github上存儲庫的Symfony2項目。
  • 此項目具有供應商依賴關係,其中一個位於不同的私有存儲庫中。我不擁有這個回購,但我是貢獻者,可以讀/寫。 「根據手冊」
    "repositories": [{ "type": "vcs", "url": "[email protected]:company/dependency.git" }], "require": {"company/dependency": "~1.0"}

  • 我已經建立了PHPCI我的測試服務器,增加了主體工程,建立一個cron作業,所有的:它被添加到下面的方式使用作曲家項目。

  • 我在此服務器上生成了一個SSH密鑰(位於/root/.ssh),並將密鑰添加到了我的個人github帳戶。
  • 作爲root用戶,我可以手動克隆此測試服務器上的主項目存儲庫和依賴庫。

但在PHPCI運行構建的時候,我得到以下信息:

Cloning into '/var/www/phpci/PHPCI/build/10'... 
Working copy created:/
RUNNING PLUGIN: composer 

Using --prefer-source flag 
Loading composer repositories with package information 
Failed to clone the [email protected]:company/dependency.git repository, 
try running in interactive mode so that you can enter your GitHub credentials 

[RuntimeException] 

Failed to execute git clone --mirror '[email protected]:company/dependency.git' '/root/.composer/cache/vcs/git-github.com-company-dependency.git/' 

所以供應商的依賴,不能因身份驗證問題檢索。但是,主要項目,也在私人存儲庫中,正在克隆,沒有任何問題由PHPCI。

cronjob和composer以root身份運行,/var/www/phpci/PHPCI/build文件夾中充滿了由root擁有的構建。那麼爲什麼它成功地克隆了項目,而不是依賴關係?

什麼是解決這個問題的最好方法?

回答

0

沒有想到,經常發生這種情況,通過寫這個問題我自己偶然發現了答案。

爲了縮短尋找未來的讀者:

我不得不這樣做cd /var/www/phpci/PHPCI/build/<number>(我拿起我的最後一次嘗試,打造10),以及手動那裏運行sudo composer install。這也失敗了,但它給了你一個鏈接到github頁面,你可以生成一個AUTH Token並等待你粘貼回來。auth令牌存儲在/root/.composer中,所以你只需要這樣做手動一次。