同一天两个同学问我一样的问题,所以我决定详细的记录一下如何使用Travis把GitHub
里的文件传至自己的服务器
server
首先要确保自己可以通过ssh
命令免密登录自己的服务器,这就需要先生成密钥对
|
|
输入上面的指令以后一路回车即可,你会发现在用户根目录下多了.ssh
目录,进去看一下cd ~/.ssh
,里面有这3个文件
接下来把id_rsa.pub
里的内容,手动复制到服务器的~/.ssh/authorized_keys
(如没有可自行创建)中去即可
还有一种方法是使用
ssh-copy-id root@IP
命令,Mac用户可能需要用brew
安装一下ssh-copy-id
,ubuntu用户应该是自带的这个命令,实现的效果与上面手动的一样,更多ssh使用方法请参考介绍 ssh 的日常使用
登录服务器的指令如下,如果不需要密码便进入则表示成功
|
|
GitHub
在GitHub上新建个项目,名字自拟
进入你所要上传的项目,输入一下指令
|
|
Travis
登录Travis,如果没有找到新建项目的话,点击Sync account
先点开开关,然后点击齿轮,进入Setting
页面
这里可以这么设置
配置文件
在本地项目中添加.travis.yml
文件,先只加入一下配置
|
|
接下来使用Travis
命令行工具将id_rsa.pub
加密,同时将环境变量传至Travis
|
|
travis encrypt-file ~/.ssh/id_rsa --add
报了下图这个错误,是网路问题,终端翻墙即可执行完以后会发现在Travis
网站项目里面的Setting
中的环境变量里多两个参数
并且在.travis.yml
里的before_install
周期中自动多了下面这2行
|
|
默认生成的命令可能会在/
前面带转义符\
,我们不需要这些转义符,手动删掉所有的转义符,否则可能在后面引发莫名的错误
之后为了保证命令的顺利运行,我们还需要正确地设置权限和认证,注意第三行主机IP地址
那里写自己服务器的IP
|
|
最后,就是在after_success
周期中,添加上传服务器的指令即可,在这里要注意,如果没有stricthostkeychecking=no
参数,将构建失败,详细原因请参考通过travis部署代码到远程服务器
|
|
最最后上传所有文件到GitHub
|
|
在Travis
查看log,显示成功上传
在这里可以看到我的配置文件项目地址,欢迎大家的反馈,希望能有所帮助