使用rsync和gitlab-ci.yml同步Wordpress主题文件夹
尝试使用使用rsync和gitlab-ci.yml同步Wordpress主题文件夹,git,shell,rsync,sshpass,Git,Shell,Rsync,Sshpass,尝试使用.gitlab ci.yml将主题自动部署到生产服务器时,我收到一个错误: 使用ubuntu:16.04映像执行的命令: 错误结果: sshpass: invalid option -- 'o' protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at comp
.gitlab ci.yml
将主题自动部署到生产服务器时,我收到一个错误:
使用ubuntu:16.04映像执行的命令:
错误结果:
sshpass: invalid option -- 'o'
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(176) [sender=3.1.1]
ERROR: Job failed: exit code 1
我正在使用完全相同的.gitlab ci.yml
、服务器、FTP帐户、运行程序和gitlab主机成功地自动部署到其他git repo中
唯一改变的是源git存储库和/project文件夹/
老实说,我不知道从哪里开始,也不知道如何追踪这个问题,所以我很乐意接受任何建议。您的
$STAGE\u FTP\u PASS
必须为空,这样命令就会变为空
sshpass -p ssh -o StrictHostKeyChecking=no
因此
sshpass
会认为-p ssh
是密码,-o strichostkeychecking=no
是命令。您的$STAGE\u FTP\u PASS
必须为空,因此命令将变为空
sshpass -p ssh -o StrictHostKeyChecking=no
所以
sshpass
会认为-psh
是密码,-o strichostkeychecking=no
是命令。正如@pynexj已经说过的,$STAGE\u FTP\u PASS
是一个空字符串,这导致了错误。我在脚本中使用了echo$STAGE\u FTP\u USER
尝试了这个方法
在插入秘密变量时,我选中了框[X]Protected,该框附带了一个解释:该变量将仅传递给运行在受保护分支和标记上的管道
搜索受保护的分支我注意到,在设置>存储库>受保护的分支中没有设置受保护的分支
因此,我可以选择取消选中[]受保护的
复选框,这样每个分支都可以使用秘密变量,或者使用更安全的方法将我的分支(例如主
)添加为受保护的分支
现在一切又恢复正常了。再次感谢@pynexj指出脚本中出现问题的原因。正如@pynexj已经说过的,
$STAGE\u FTP\u PASS
是一个空字符串,这导致了错误。我在脚本中使用了echo$STAGE\u FTP\u USER
尝试了这个方法
在插入秘密变量时,我选中了框[X]Protected,该框附带了一个解释:该变量将仅传递给运行在受保护分支和标记上的管道
搜索受保护的分支我注意到,在设置>存储库>受保护的分支中没有设置受保护的分支
因此,我可以选择取消选中[]受保护的
复选框,这样每个分支都可以使用秘密变量,或者使用更安全的方法将我的分支(例如主
)添加为受保护的分支
现在一切又恢复正常了。再次感谢@pynexj指出脚本中出现问题的原因。感谢@pynexj,这是正确的。我不能
echo$STAGE\u FTP\u PASS
,即使设置了它,但这是另一个问题,而且是gitlab特有的,我想……非常感谢!)非常好的帮助。我已经添加了一个关于我的确切问题的更详细的解决方案,如果有其他人有相同的问题。我花了足够长的时间找到这个。。。事实上,我是从一个未受保护的分支执行的,但gitlab保护了密码变量,这导致了一个空变量,因此出现了相同的(部分)错误sshpass:invalid option--“o”
谢谢@pynexj,这是正确的。我不能echo$STAGE\u FTP\u PASS
,即使设置了它,但这是另一个问题,而且是gitlab特有的,我想……非常感谢!)非常好的帮助。我已经添加了一个关于我的确切问题的更详细的解决方案,如果有其他人有相同的问题。我花了足够长的时间找到这个。。。事实上,我是从一个未受保护的分支执行的,但gitlab保护了密码变量,这导致了一个空变量,因此出现了相同的(部分)错误sshpass:invalid选项--“o”