通过缓存 Composer 依赖可显著加速 GitHub Actions 构建。基于 composer.lock 文件哈希值生成缓存键,使用 actions/cache 缓存 ~/.composer/cache 目录,命中缓存后执行 composer install --prefer-dist --no-progress,使安装时间从几十秒降至几秒,特别适用于频繁运行的 CI/CD 任务。

在使用 GitHub Actions 构建 PHP 项目时,每次运行都会执行 composer install 来安装依赖,这会显著增加构建时间。通过缓存 Composer 的依赖包,可以大幅减少重复下载和安装的时间,从而加速 CI/CD 流程。
GitHub Actions 提供了 actions/cache 动作,可以将 Composer 的全局 vendor 目录(即下载的依赖包)缓存起来。当下次构建时,若 composer.lock 文件未变,则直接复用缓存,跳过远程拉取过程。
核心思路是:
composer.lock 文件的哈希值生成缓存键(cache key)~/.composer/cache)composer install --prefer-dist --no-progress
在你的 GitHub Actions 工作流中(如 .github/workflows/ci.yml),添加缓存步骤:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
<pre class='brush:php;toolbar:false;'> - name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
tools: composer
- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ~/.composer/cache
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- name: Install dependencies
run: composer install --prefer-dist --no-progresspath 指定的是 Composer 存放下载包的本地缓存目录,不同系统位置一致。
key 使用 composer.lock 的哈希值,确保依赖变动时缓存失效。若 lock 文件相同,则命中缓存。
restore-keys 提供模糊匹配回退机制。例如当 lock 文件有微小变更时,仍可尝试使用旧缓存加速部分下载。
额外建议:
composer.lock 文件并提交到 Git--prefer-dist 优先从 dist 包安装,更快更稳定基本上就这些。合理利用缓存能将依赖安装时间从几十秒降至几秒,特别适合频繁运行的 CI 任务。
以上就是如何在GitHub Actions中缓存composer依赖来加速构建的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号