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

如何在GitHub Actions工作流中配置排除特定文件/文件夹不上传部署

GitHub Actions 排除指定文件部署的实现方法

完全可以在当前的 GitHub Actions 工作流中配置忽略指定文件/文件夹,不需要先拆分代码仓库。你当前新增的 zip 打包步骤就可以直接实现排除逻辑,是成本最低的优化方案。

方案1:修改zip打包命令直接排除冗余文件

zip 命令原生支持 -x 参数用于排除指定路径的文件/文件夹,你只需要调整Zip artifact for deployment步骤的 run 命令即可,语法如下:

zip release.zip ./* -r -x "要排除的路径1/*" "要排除的路径2/*" "匹配规则"

举个常用的排除场景示例,比如要排除前端源码目录client/、Git 目录、测试用例目录、本地配置文件、文档文件,就可以写成:

zip release.zip ./* -r -x "client/*" ".git/*" "tests/*" ".env.*" "*.md" "*.log"

所有匹配你填写的规则的文件都会被跳过,不会被打入最终的部署包,自然也不会被传输到 Azure App Service。
注意:配置排除规则时不要误删运行必需的文件,比如 Node 服务的入口文件、前端构建后的build目录都要保留。

方案2:复制必需文件到独立目录后打包(规则更清晰)

如果需要排除的文件太多,写排除规则容易出错,可以先把需要部署的文件复制到单独的目录,再对该目录打包,示例如下:

- name: Prepare deployment files
  run: |
    mkdir deploy_out
    cp -r build/ server/ package.json package-lock.json deploy_out/
- name: Zip artifact for deployment
  run: cd deploy_out && zip release.zip ./* -r

后续上传 artifact 时把路径调整为deploy_out/release.zip即可,这种方式可以完全避免冗余文件被打入部署包。

长期性能优化建议

如果要彻底解决混合部署的性能问题,不需要拆分代码仓库,直接在当前工作流里新增独立的前端部署任务即可:前端构建完产物直接部署到静态站点服务,后端单独打包部署到 App Service,前端静态资源请求不需要经过 Node 服务处理,响应速度可以提升数倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:06:05