将Github的master分支上传到SFTP的最佳方法

时间:2019-04-17 12:19:53

标签: git github sftp travis-ci continuous-delivery

启用将GitHub master分支代码上传到SFTP服务器的管道的最佳方法是什么?我的master分支上有(PHP)文件,需要与SFTP(生产)服务器同步。

我已经尝试使用git-ftp来使用Travis CI,但是由于cURL不支持sftp,仅支持ftp,因此无法正常工作。

我也尝试过this guide,但是它也使用cURL,因为它不支持sftp,因此无法使用。

我是否可以使用任何程序(Travis CI的替代产品),还是应该坚持使用Travis CI并尝试其他尝试?

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。

首先,curl的许多版本确实支持SFTP。这是使用适当版本的问题。 Debian和Ubuntu提供了curl二进制文件,可使用用户名,密码或密钥通过SFTP进行上传。

第二,您可以使用诸如lftp之类的程序,该程序可以编写脚本,也可以用于通过SFTP使用用户名,密码或密钥将其上传到远程服务器。在Debian和Ubuntu中也可以使用此二进制文件。

第三,您可以使用OpenSSH的sftp命令行程序。但是,由于OpenSSH总是提示在/dev/tty上输入用户名和密码,从而阻止其在脚本中使用,因此您需要为此目的使用SSH密钥,或者需要使用expect之类的名称编写与sftp程序的交互的脚本,并提供TTY来输入数据。

如果您是在Linux上的Travis上进行构建的,并且没有提供适当的二进制文件,则始终可以在合适的Docker容器中进行构建,而不是在Travis系统本身上进行构建。