PHP-CI,编写器依赖项和私有github存储库

时间:2015-12-12 16:25:24

标签: git symfony composer-php php-ci

情况:

  • 我在私有github存储库中有一个symfony2项目。
  • 此项目具有供应商依赖关系,其中一个属于不同的私有存储库。我没有这个回购,但我是一个贡献者,可以读/写。它使用作曲家以下列方式添加到项目中:
    "repositories": [{ "type": "vcs", "url": "git@github.com: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 git@github.com:company/dependency.git repository, 
try running in interactive mode so that you can enter your GitHub credentials

[RuntimeException]

Failed to execute git clone --mirror 'git@github.com:company/dependency.git' '/root/.composer/cache/vcs/git-github.com-company-dependency.git/'

因此,由于身份验证问题,无法检索供应商依赖性。但主要项目,也在私有存储库中,正在被PHPCI克隆而没有任何问题。

cronjob和composer以root身份运行,/var/www/phpci/PHPCI/build文件夹中填充了root拥有的构建。那么为什么它成功克隆了项目,而不是依赖?

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

没关系,就像经常发生的那样,通过写这个问题我自己偶然发现了答案。

缩短对未来读者的搜索:

我必须cd /var/www/phpci/PHPCI/build/<number>(我选择了最后一次尝试,构建了10),并在那里手动运行sudo composer install。这也失败了,但是它为你提供了一个指向github页面的链接,你可以在其中生成AUTH Token并等待你将其粘贴回来。身份验证令牌存储在/root/.composer中,所以你只能这样做必须手动完成一次。