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

如何在GitHub Actions中仅部署仓库内的指定文件夹?

仅部署特定文件夹的GitHub工作流示例

以下是修改后的工作流代码,只会将仓库中的dev文件夹部署到目标服务器:

name: DeployDev14

on:
  push:
    branches:
      - master
    # 可选:仅当dev文件夹内容变动时触发工作流,减少不必要的执行
    paths:
      - 'dev/**'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      # Setup key
      - run: set -eu
      - run: mkdir "$HOME/.ssh"
      - run: echo "${{ secrets.KEY }}" > "$HOME/.ssh/id_rsa"
      - run: chmod 600 "$HOME/.ssh/id_rsa"
      
      # Deploy:仅同步dev文件夹内的内容
      - run: rsync -e "ssh -p 22 -i $HOME/.ssh/id_rsa -o StrictHostKeyChecking=no" --archive --compress --delete ./dev/ root@##.##.##.##:/home/sites/site.com

关键改动说明

  • 修改rsync源路径:把原来的.(仓库根目录)换成./dev/,末尾的斜杠确保rsync会将dev文件夹内的所有内容同步到目标目录,而不是把dev文件夹本身复制过去。
  • 可选的路径触发条件:在on.push下添加paths配置,只有当dev文件夹及其子目录的内容发生变动时,才会触发部署工作流,避免无关代码推送导致的无效部署。

注意事项

  • 确保服务器上的/home/sites/site.com目录已存在,若需要将dev文件夹本身同步过去(即目标路径变成/home/sites/site.com/dev),只需去掉源路径末尾的斜杠,写成./dev即可。
  • 请替换代码中的##.##.##.##为你的服务器实际IP地址。

内容的提问来源于stack exchange,提问作者John Galt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:12:08