如何从Travis CI上传到FTP

时间:2014-10-27 14:11:45

标签: curl ftp gruntjs travis-ci

我需要在构建步骤完成后将Travis根目录中的所有文件上传到FTP服务器。 Travis CI's documentation for custom deployment建议使用curl发送文件。不幸的是,curl FTP上传不支持globing,这使得大量文件几乎不可能。

如何确保我的整个目录(包括所有文件和子目录)都上传到FTP?

有没有一种优雅的方法可以做到这一点,还是更好地依靠像grunt这样的工具上传到FTP?

3 个答案:

答案 0 :(得分:3)

Travis doc仅表示您应该在after_success:部分中执行此类操作。指定的命令只是一个例子。

因此,从您的计算机上执行您想要的操作,然后将您在after_success:部分中使用的命令序列。

在您的情况下,如果我正确理解您的需求,则创建存档(使用tar)然后上传(使用curl或直接使用ftp)应该有效。

答案 1 :(得分:0)

有时以下链接会有所帮助。它关于node_js应用程序中的FTP部署。

Travis build with nodejs en custom ftp

答案 2 :(得分:0)

  1. 使用find命令添加除特定文件夹之外的所有内容。
  2. 在“设置”菜单中添加环境变量SFTP_USERSFTP_PASSWORD

这是我的yml:

language: node_js
after_success:
- find . -type d \( -path "./.*" -o -path "./node_modules" \) -prune -o -name "*" -print -exec curl --ftp-create-dirs -T {} ftp://your.server.com/dir/ --user ${SFTP_USER}:${SFTP_PASSWORD} \;