0

0

如何在GitHub Actions中高效运行Composer_配置GitHub Actions工作流以缓存Composer依赖

穿越時空

穿越時空

发布时间:2025-11-30 15:45:06

|

1003人浏览过

|

来源于php中文网

原创

通过缓存Composer依赖可显著提升GitHub Actions构建速度。首先使用actions/cache缓存~/.composer/cache和vendor/目录,结合composer.lock的hash值生成缓存key,确保依赖一致性;在工作流中先加载全局包缓存,再执行composer install --prefer-dist,并单独缓存vendor目录供后续阶段复用;建议始终提交composer.lock、避免跨PHP版本共享vendor缓存,多Job场景可结合upload-cache与download-cache实现高效协作,使依赖安装从数十秒缩短至几秒。

如何在github actions中高效运行composer_配置github actions工作流以缓存composer依赖

在GitHub Actions中高效运行Composer,关键在于利用缓存机制避免每次工作流都重新下载PHP依赖。通过缓存vendor目录和Composer本地包缓存,可以显著缩短构建时间。以下是如何配置一个高效的GitHub Actions工作流来实现这一点。

使用actions/cache缓存Composer依赖

GitHub官方提供了 actions/cache 动作,可用于缓存Composer的依赖目录。主要缓存两个路径:

  • ~/.composer/cache:Composer下载的压缩包缓存
  • vendor/:项目依赖安装目录

缓存命中时,composer install 将直接使用已有依赖,无需重新下载,大幅提升速度。

配置工作流文件

在项目根目录创建或修改 .github/workflows/ci.yml 文件:

Type
Type

生成草稿,转换文本,获得写作帮助-等等。

下载
name: CI
on: [push, pull_request]

jobs:
test:
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
cache: composer

- name: Cache Composer dependencies
uses: actions/cache@v3
with:
path: ~/.composer/cache/files
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install dependencies
run: composer install --no-progress --no-scripts --prefer-dist

- name: Cache vendor directory
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-vendor-${{ hashFiles('**/composer.lock') }}

说明:

  • setup-php 动作自带PHP环境和Composer,并支持内置缓存(可选)
  • 第一个缓存步骤保存Composer全局包缓存
  • hashFiles('**/composer.lock') 确保lock文件变更时缓存失效
  • 先缓存全局包,再执行 composer install
  • 最后缓存 vendor 目录,适用于后续作业复用(如部署阶段)

优化建议与注意事项

为获得最佳效果,请注意以下几点:

  • 始终提交 composer.lock 文件,确保依赖版本一致
  • 使用 --prefer-dist 优先从dist下载稳定包,加快安装
  • 若项目较大,可考虑仅缓存 ~/.composer/cache,让CI每次干净安装但快速获取包
  • 避免缓存 vendor 跨不同PHP版本或架构,可能导致兼容问题
  • 多个Job需要共享依赖时,可配合 upload-cachedownload-cache

基本上就这些。合理使用缓存能让GitHub Actions中的Composer安装从几十秒降至几秒,提升开发效率。不复杂但容易忽略细节。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

154

2023.12.25

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

993

2026.01.21

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

816

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

414

2023.12.28

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

660

2023.12.28

为什么ubuntu有网络连接但不能上网
为什么ubuntu有网络连接但不能上网

ubuntu有网络连接但不能上网的原因:1、dns配置问题;2、代理服务器设置问题;3、网络防火墙设置问题;4、路由器或调制解调器设置问题;5、网络驱动程序问题;6、网络配置文件问题;7、其他问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

460

2024.09.05

ubuntu安装golang
ubuntu安装golang

本专题整合了ubuntu安装golang所有方法汇总,阅读下面的文章了解更多详细操作。

107

2025.12.13

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号