Composer php Github操作-编写器因';sh:git:未找到';?
我有一个wordpress插件,我使用composer来定义我的依赖库和github操作,以构建可安装的包。我计划将vendors文件夹发布到github中的“build”分支,以便安装整个应用程序 我的文件包含此内容并在本地工作Composer php Github操作-编写器因';sh:git:未找到';?,composer-php,github-actions,Composer Php,Github Actions,我有一个wordpress插件,我使用composer来定义我的依赖库和github操作,以构建可安装的包。我计划将vendors文件夹发布到github中的“build”分支,以便安装整个应用程序 我的文件包含此内容并在本地工作 { "name" : "emeraldjava/bhaa_wordpress_plugin", "description" : "bhaa_wordpress_plugin", "type" : "wordpress-plugin", "require": {
{
"name" : "emeraldjava/bhaa_wordpress_plugin",
"description" : "bhaa_wordpress_plugin",
"type" : "wordpress-plugin",
"require": {
"scribu/scb-framework": "dev-master",
"scribu/lib-posts-to-posts": "dev-master",
"mustache/mustache": "2.12.0",
"league/csv": "^9.1",
"michelf/php-markdown": "^1.8"
},
我的github操作文件使用“”在docker容器中安装composer env
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Composer install
uses: MilesChou/composer-action/7.3@master
with:
args: install --no-dev
- uses: docker://php:7.3-alpine
- uses: docker://alpine/git:latest
从构建日志中,我可以看到这些composer工件的zip文件已经下载到缓存中
36/38: https://codeload.github.com/scribu/wp-scb-framework/legacy.zip/95b23ac342fce16bf5eb8d939ac5a361b94b104b
37/38: https://codeload.github.com/sebastianbergmann/phpunit/legacy.zip/a7834993ddbf4b0ed2c3b2dc1f3b1d093ef910a9
38/38: https://codeload.github.com/scribu/wp-lib-posts-to-posts/legacy.zip/a695438e455587fa228e993d05b4431cde99af1b
Finished: success: 38, skipped: 0, failure: 0, total: 38
生成失败,出现此“sh:git:not found”错误
Package operations: 5 installs, 0 updates, 0 removals
- Installing scribu/scb-framework (dev-master 95b23ac): Cloning 95b23ac342
Failed to download scribu/scb-framework from source: Failed to clone https://github.com/scribu/wp-scb-framework.git, git was not found, check that it is installed and in your PATH env.
sh: git: not found
Now trying to download from dist
- Installing scribu/scb-framework (dev-master 95b23ac): Loading from cache
- Installing scribu/lib-posts-to-posts (dev-master a695438): Cloning a695438e45
Failed to download scribu/lib-posts-to-posts from source: Failed to clone https://github.com/scribu/wp-lib-posts-to-posts.git, git was not found, check that it is installed and in your PATH env.
sh: git: not found
Now trying to download from dist
- Installing scribu/lib-posts-to-posts (dev-master a695438): Loading from cache
- Installing mustache/mustache (v2.12.0): Loading from cache
- Installing michelf/php-markdown (1.8.0): Loading from cache
- Installing league/csv (9.4.1): Loading from cache
我假设我需要确保docker容器安装了git,但是composer能够访问legacy.zip文件似乎有些奇怪,那么为什么在这个阶段需要git呢
编辑1
我猜这里的快速修复方法是复制的,正如下面的答案所述
为了完整起见,假设我不能调用“composer——preferred dist”,我如何确保docker容器有git可用?默认情况下,composer将dist(zip文件)用于标记的发布,将source(git克隆)用于分支。由于您的依赖项的目标是
master
分支,Composer会首先尝试克隆存储库。您可以使用--preference dist
开关来覆盖此行为:
with:
args: install --prefer-dist --no-dev
--首选dist
:与--首选源代码相反,如果可能,Composer将从dist
安装。这可以大大加快构建时的安装速度
通常不运行更新的服务器和其他用例
供应商。如果您愿意,它也是一种规避git问题的方法
没有正确的设置
默认情况下,Composer使用dist(zip文件)作为标记版本,使用source(git克隆)作为分支。由于您的依赖项的目标是master
分支,Composer会首先尝试克隆存储库。您可以使用--preference dist
开关来覆盖此行为:
with:
args: install --prefer-dist --no-dev
--首选dist
:与--首选源代码相反,如果可能,Composer将从dist
安装。这可以大大加快构建时的安装速度
通常不运行更新的服务器和其他用例
供应商。如果您愿意,它也是一种规避git问题的方法
没有正确的设置