Travis CI构建PHP项目并从Composer提取依赖项,尝试使用git @而不是https

edmondscommerce

背景

我们有一个PHP项目,该项目在一定程度上可以与Travis CI正常工作,从那时起就完全停止了工作。该项目完全无法使用Composer构建。

细节

最后成功的构建是:这一个

最近一次失败的构建是:这个,在Naming Collisions该提交的分支

不断出现的错误是:

Failed to execute git clone --mirror '[email protected]:edmondscommerce/Faker.git' '/home/travis/.composer/cache/vcs/git-github.com-edmondscommerce-Faker.git/' 

最新分支是NamingCollisions,这是最新提交

注意,在composer.json中,我们Faker库使用了fork

  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/edmondscommerce/Faker.git"
    }
  ],

对于我们的本地测试,这一切都很好,仅在Travis中失败。

我们尝试过的事情:

  • 刷新Travis缓存

  • 在安装之前清除作曲家缓存- .travis.bash

  • 添加:

 "github-protocols": ["https"]

composer.json

  • 希望它会消失...

到目前为止没有运气。

不幸的是,我们现在只是在本地进行测试,而忽略了Travis,因为即使代码运行正常,它也始终会失败。

希望你们中的一位读者能帮助您解决这一问题!

我们一起去了

最后,我们决定按照Everon的建议添加"no-api": truerepositories配置中。

这迫使作曲家不再使用github API(docs):

如果您在github存储库上将no-api键设置为true,它将像使用其他git存储库一样克隆存储库,而不是使用GitHub API。

埃弗隆

我对此进行了调查,这与Travis本身无关。

在查看Travis并在Docker实例中本地运行Travis环境之后,我能够重现该问题。

Travis抱怨无法在Github上通过身份验证。

您需要使用Travis环境变量,然后可以使用该变量来设置访问令牌,以便Composer可以执行安装Faker的VCS存储库分支所需的操作。

您可以在Travis的存储库设置中定义变量,然后将其用作标准Bash变量,以在travisbefore_script数组或Shell脚本中使用。

构建日志中的令牌:

Setting environment variables from repository settings
$ export GITHUB_TOKEN=[secure]

您可以在此处定义所需的访问令牌:https : //github.com/settings/tokens/new?scopes=repo

然后可以在before脚本中进行设置,如下所示:

before_script:
  - composer config github-oauth.github.com ${GITHUB_TOKEN};
  - bash -x .travis.bash

另一种选择是在您的Faker分支中添加“ no-api”-参见下文。

...
"repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/edmondscommerce/Faker.git",
      "no-api": true
    }
]
...

构建(失败,但已超出您遇到的问题)https://travis-ci.org/everon/doctrine-static-meta/jobs/352620456

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章