PHP 怎么Renovate

wen PHP项目 3

本文目录导读:

PHP 怎么Renovate

  1. 安装 Renovate
  2. 创建 Renovate 配置文件
  3. 配置 PHP 相关更新
  4. 针对 PHP 项目的常用配置
  5. 初始化 Renovate
  6. 验证配置
  7. 常见问题处理
  8. GitHub Actions 集成(可选)
  9. 注意事项

在 PHP 中,如果你想使用 Renovate(一个自动化依赖更新工具),你需要按照以下步骤进行配置:

安装 Renovate

使用自托管方式(Self-hosted)

# 使用 npm 全局安装
npm install -g renovate
# 或者使用 Docker
docker run --rm renovate/renovate

使用 GitHub App(最简单)

在 GitHub Marketplace 中搜索 "Renovate",点击安装并授权到你的仓库。

创建 Renovate 配置文件

在项目根目录创建 renovate.jsonrenovate.json5

{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "extends": [
    "config:recommended"
  ],
  "packageRules": [
    {
      "matchDatasources": ["packagist"],
      "matchPackagePatterns": ["^php"],
      "groupName": "PHP Packages"
    }
  ],
  "php": {
    "enabled": true,
    "rangeStrategy": "bump"
  }
}

配置 PHP 相关更新

更新 composer.json 依赖

{
  "extends": ["config:recommended"],
  "composer": {
    "enabled": true,
    "rangeStrategy": "in-range",
    "composerIgnorePlatformReqs": true
  }
}

更新 PHP 版本

{
  "constraints": {
    "php": "^8.0"
  }
}

配置 PR 合并策略

{
  "packageRules": [
    {
      "matchUpdateTypes": ["major"],
      "automerge": false
    },
    {
      "matchUpdateTypes": ["minor", "patch"],
      "automerge": true,
      "automergeType": "branch"
    }
  ]
}

针对 PHP 项目的常用配置

忽略特定包

{
  "ignored": [
    "phpunit/phpunit",
    "friendsofphp/php-cs-fixer"
  ]
}

配置更新频率

{
  "schedule": [
    "every weekend",
    "before 5:00am"
  ],
  "timezone": "Asia/Shanghai"
}

分组更新策略

{
  "groupName": "Laravel Packages",
  "matchPackagePatterns": ["^laravel/"]
}

初始化 Renovate

在你的 GitHub 仓库中添加 Renovate 后,它会自动:

  • 创建 "Configure Renovate" 的 PR
  • 合并该 PR 后会生成 renovate.json 配置
  • 自动检测 composer.json 中的依赖

验证配置

你可以使用 Renovate 的配置验证工具:

renovate-config-validator renovate.json

常见问题处理

处理平台版本约束

{
  "constraints": {
    "php": ">=8.0 <8.2"
  }
}

处理多 PHP 版本

{
  "supportPolicy": "active-lts",
  "phpVersions": ["8.0", "8.1", "8.2"]
}

GitHub Actions 集成(可选)

创建 .github/workflows/renovate.yml

name: Renovate
on:
  schedule:
    - cron: '0 3 * * *'
jobs:
  renovate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Renovate
        uses: renovatebot/github-action@v40
        with:
          token: ${{ secrets.RENOVATE_TOKEN }}

注意事项

  1. 安全更新:Renovate 会自动创建安全更新的 PR
  2. 兼容性:确保配置的 PHP 版本与你的项目兼容
  3. 测试:配置 automerge 前确保有足够的测试覆盖
  4. 权限:Renovate 需要仓库的写权限

通过这些配置,Renovate 会自动监控并更新你的 PHP 依赖,保持项目的最新状态。

抱歉,评论功能暂时关闭!