You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel7.30/PHP7.4下Github Actions报exit code 1求工作流脚本及教程

GitHub Actions Laravel7 + Vue 工作流修复方案

现有配置报错的常见原因

  • 缺少.env配置文件:Laravel运行必须依赖.env文件,现有步骤中没有从.env.example复制生成.env,直接执行php artisan key:generate会直接抛出异常
  • 依赖安装逻辑错误:使用composer update会忽略项目根目录的composer.lock锁文件,强制升级依赖版本,极易出现版本兼容冲突;额外执行composer require illuminate/contracts会修改项目原有依赖配置,和你本地的Laravel7.30版本不匹配
  • 缺少必要PHP扩展:Laravel7运行依赖bcmath、ctype、json、mbstring、openssl、pdo、tokenizer、xml、fileinfo等扩展,配置中未指定安装这些扩展
  • 未处理前端依赖:技术栈包含Vue,但现有配置完全没有Node环境安装、前端依赖安装、前端资源构建的步骤,如果你的测试用例涉及前端资源加载会直接报错
  • 缺少测试环境配置:默认phpunit测试可以直接使用sqlite内存数据库,不需要额外配置数据库服务,现有配置未指定测试环境的数据库参数

可用的完整工作流配置

name: Laravel Tests

on:
  push:
    branches:
      - development
  pull_request:
    branches:
      - development
  schedule:
    - cron: '0 0 * * *'

jobs:
  laravel-tests:
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: true
      matrix:
        php-version: [7.4]
        node-version: [14.x] # Laravel7默认适配的Node版本,兼容Vue常用构建配置

    steps:
      - name: 拉取代码
        uses: actions/checkout@v3

      - name: 配置PHP环境
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
          extensions: bcmath, ctype, fileinfo, json, mbstring, openssl, pdo, tokenizer, xml, sqlite3
          tools: composer:v2
          coverage: none

      - name: 复制.env配置文件
        run: cp .env.example .env

      - name: 安装PHP依赖
        run: composer install --prefer-dist --no-interaction --no-progress

      - name: 生成应用密钥
        run: php artisan key:generate

      - name: 配置Node环境
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

      - name: 安装前端依赖
        run: npm ci

      - name: 构建前端资源
        run: npm run production

      - name: 执行单元测试
        run: vendor/bin/phpunit --verbose
        env:
          DB_CONNECTION: sqlite
          DB_DATABASE: :memory:

额外注意事项

  • 如果你的测试需要用到MySQL、Redis等服务,在steps前添加services配置段,对应启动服务容器即可
  • 若执行npm相关步骤时报错,可以尝试将npm ci替换为npm install,适配不同项目的前端依赖配置
  • 排查错误时可以在run命令开头添加set -x,执行时会打印所有命令的运行日志,快速定位出错的具体步骤

内容的提问来源于stack exchange,提问作者gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:45:04