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
相关产品推荐
相关产品推荐

