当前位置: 首页 > 知识库问答 >
问题:

GitHub操作-由于PHP版本限制,编写器失败

徐兴昌
2023-03-14

我试图让我的单元测试在pull_request上通过GitHub操作运行。

当我更新我的PR时,我可以看到运行的操作,但当PHP版本尝试composer安装我的项目时,它不会更新。

Command: composer install --no-interaction --no-suggest --no-progress
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ~7.3.0 but your PHP version (7.4.10) does not satisfy that requirement.

我尝试了多个不同的工作流文件,这是一个给了我最多的控制,但它似乎仍然运行在php7.4。

name: Run Tests

on:
  pull_request:
    branches:
      - master

jobs:
  build:
    runs-on: ${{ matrix.operating-system }}
    strategy:
      matrix:
        operating-system: [ubuntu-latest]
        php-versions: ['7.3']

    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
      - uses: php-actions/composer@v2
      - uses: php-actions/phpunit@v8

最后,下面是我的composer json中的一段代码,它显示了约束:

"require": {
    "php": "~7.3.0",
    "guzzlehttp/guzzle": "^7.0"
},
"require-dev": {
    "phpunit/phpunit": "^8"
}

共有1个答案

左丘元徽
2023-03-14

您可以通过添加。github/workflows/YOURACTION。亚马尔

  - name: Build Composer
    uses: php-actions/composer@v5
    with:
      ssh_key: ${{ secrets.ssh_key }}
      ssh_key_pub: ${{ secrets.ssh_key_pub }}
      php_version: 7.2

请注意,我是在Composer步骤上做的,而不是在shivammaather/setup-php@v2尝试一起删除这一步,你可能根本不需要它。

更多信息请参见:https://github.com/marketplace/actions/composer-php-actions

 类似资料:
  • 我将GitHub操作用于CI/CD,并从中编写了一些cypress测试和YAML文件。但是当我推存储库时,我得到了一个错误。 失败的错误 我如何解决这个问题。当我在本地运行cypress时,它工作正常。

  • 我需要在我的主机上运行composer update,因此我使用ssh登录,并尝试在/www文件夹中运行以下命令,我在该文件夹中安装了Laravel和composer: 我得到这个错误: 我正在与我的主机提供商联系,他们告诉我运行命令: 我运行了这个命令,但得到:“无法打开文件:composer” 怎么办?这里的解决方案是什么?

  • 我使用android Studio制作了一个静态编程语言MultiPlatform Mobile项目,导入SQLDelight后遇到以下错误: 我回答了这个问题,但他们提到的一切我都做对了。在一个文件一个文件地查看之后,我没有找到我在哪里声明了那个版本,于是我决定将我的项目与其中一个示例项目进行比较。 再次查看这些文件后,我发现我在我的应用程序等级中使用了SQLDelightVersion1.5.

  • Composer 版本和 VCS 版本 Composer 很大程度上依赖于像 Git 这样的版本控制系统,所以说『版本』可能有点含糊不清。在版本控制系统的意义上,『版本』是包含特定数据的特定文件集。在 Git 术语中,它可以是 ref 或者某个特定提交,可以由分支 HEAD 或 tag 表示。当您在 VCS 中签出该版本时 - 例如,标记 v1.1 或提交 e35fa0d 等等 ,您需要一组已知的

  • 我的用例是,我希望每个构建/运行的工件都有一个唯一的版本号。对于CircleCI、Travis等当前工具,有一个可用的构建编号,它基本上是一个不断上升的计数器。因此,我可以创建版本字符串,如0.1.0-27。即使对于相同的提交,此计数器也会每次增加。 如何使用GitHub Actions做类似的事情?Github操作只提供GITHUB_SHA和GITHUB_REF。

  • 我有一个表tablename和列col1-col10。不是每行都填充了col4,但每行都填充了col1、col2、col3。我想在col4满足条件时获取所有{col1,col2,col3}元组,然后从TableName中获取与元组{col1,col2,col3}匹配的所有行。 我怎样才能做到这一点?