通过缓存 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 的全局缓存目录(通常是 ~/.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- 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-progress说明与优化建议
path 指定的是 Composer 存放下载包的本地缓存目录,不同系统位置一致。
key 使用
composer.lock的哈希值,确保依赖变动时缓存失效。若 lock 文件相同,则命中缓存。restore-keys 提供模糊匹配回退机制。例如当 lock 文件有微小变更时,仍可尝试使用旧缓存加速部分下载。
额外建议:
确保项目中存在
composer.lock文件并提交到 Git使用--prefer-dist优先从 dist 包安装,更快更稳定可在不同 job 或环境中复用缓存,提升整体流水线效率基本上就这些。合理利用缓存能将依赖安装时间从几十秒降至几秒,特别适合频繁运行的 CI 任务。
以上就是如何在GitHub Actions中缓存composer依赖来加速构建的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/136530.html
微信扫一扫
支付宝扫一扫