背景
我们有一个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"]
到目前为止没有运气。
不幸的是,我们现在只是在本地进行测试,而忽略了Travis,因为即使代码运行正常,它也始终会失败。
希望你们中的一位读者能帮助您解决这一问题!
我们一起去了
最后,我们决定按照Everon的建议添加"no-api": true
到repositories
配置中。
这迫使作曲家不再使用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] 删除。
我来说两句