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

GitHub Action推送master分支时仅上传public目录内文件到FTP服务器咨询

核心原因

working-directory配置仅作用于当前任务中通过run执行的自定义脚本命令,不会对uses字段引入的第三方Action生效,因此你之前的配置无法限制FTP同步的目录范围。

解决方法

你使用的SamKirkland/FTP-Deploy-Action自带local-dir参数,专门用于指定需要同步的本地目录,只需按规则配置该参数即可实现需求:

  • 参数值设为./public/,末尾必须加斜杠,这样配置只会上传public目录下的所有内容,不会把public目录本身上传到服务器。

修正后的完整配置

on: 
  push:
    branches:
      - master
name: 🚀 Deploy website on push
jobs:
  ftp-web-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    steps:
    - name: 🚚 Get latest code
      uses: actions/checkout@v2.4.0
      with: 
        fetch-depth: 2
    - name: 📂 Sync files
      uses: SamKirkland/FTP-Deploy-Action@4.2.0
      with:
        server: ****
        username: ****
        password: ${{ secrets.prod_ftp_password }}
        server-dir: public_html/
        local-dir: ./public/

配置调整说明

  • 移除了原配置中多余的全局working-directory设置,以及checkout步骤中的working-directory配置,这两处配置对FTP同步Action无效,多余配置反而可能导致代码拉取路径异常
  • 新增local-dir参数完成指定目录同步需求

内容的提问来源于stack exchange,提问作者Christian Webb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:36:04