Travis CI构建PHP项目并从Composer中提取依赖项,尝试使用git@而不是https
背景 我们有一个在某一点之前运作良好的系统,从那以后就完全停止了运作。该项目无法使用Composer进行构建 详细信息 上一次成功构建是: 最近失败的生成是: 那是 不断出现的错误是:Travis CI构建PHP项目并从Composer中提取依赖项,尝试使用git@而不是https,php,git,composer-php,travis-ci,packagist,Php,Git,Composer Php,Travis Ci,Packagist,背景 我们有一个在某一点之前运作良好的系统,从那以后就完全停止了运作。该项目无法使用Composer进行构建 详细信息 上一次成功构建是: 最近失败的生成是: 那是 不断出现的错误是: Failed to execute git clone --mirror 'git@github.com:edmondscommerce/Faker.git' '/home/travis/.composer/cache/vcs/git-github.com-edmondscommerce-Faker.git/'
Failed to execute git clone --mirror 'git@github.com:edmondscommerce/Faker.git' '/home/travis/.composer/cache/vcs/git-github.com-edmondscommerce-Faker.git/'
最新的分支是,这是
请注意,在中,我们使用a表示:
这一切都适用于我们的本地测试,但在Travis中失败
我们尝试过的事情:
- 冲洗Travis缓存
- 在执行安装之前清除composer缓存-
- 添加:
- 希望它会消失
“no-api”:true
添加到存储库
配置中
这将迫使composer不再使用github API():
如果在github存储库上将no-api键设置为true,它将克隆存储库,就像克隆任何其他git存储库一样,而不是使用github-api
我看了一下,这与特拉维斯本身无关 在查看Travis并在Docker实例中本地运行Travis环境后,我能够重现这个问题 Travis抱怨无法通过Github进行身份验证 您需要使用Travis环境变量来设置访问令牌,以便Composer可以执行安装Faker的VCS存储库fork所需的操作 您可以在Travis中的存储库设置中定义该变量,然后将其作为标准Bash变量用于Travis
before\u script
数组或shell脚本中
生成日志中的令牌:
Setting environment variables from repository settings
$ export GITHUB_TOKEN=[secure]
您可以在此处定义所需的访问令牌:
然后可以在before脚本中进行如下设置:
before_script:
- composer config github-oauth.github.com ${GITHUB_TOKEN};
- bash -x .travis.bash
另一个选择是添加“无api”到你的假货叉-见下文
...
"repositories": [
{
"type": "vcs",
"url": "https://github.com/edmondscommerce/Faker.git",
"no-api": true
}
]
...
生成(失败,但已超过您遇到的问题点)
before_script:
- composer config github-oauth.github.com ${GITHUB_TOKEN};
- bash -x .travis.bash
...
"repositories": [
{
"type": "vcs",
"url": "https://github.com/edmondscommerce/Faker.git",
"no-api": true
}
]
...