同一天两个同学问我一样的问题,所以我决定详细的记录一下如何使用Travis把GitHub里的文件传至自己的服务器

server

首先要确保自己可以通过ssh命令免密登录自己的服务器,这就需要先生成密钥对

ssh-keygen

输入上面的指令以后一路回车即可,你会发现在用户根目录下多了.ssh目录,进去看一下cd ~/.ssh,里面有这3个文件

接下来把id_rsa.pub里的内容,手动复制到服务器的~/.ssh/authorized_keys(如没有可自行创建)中去即可

还有一种方法是使用ssh-copy-id root@IP命令,Mac用户可能需要用brew安装一下ssh-copy-id,ubuntu用户应该是自带的这个命令,实现的效果与上面手动的一样,更多ssh使用方法请参考介绍 ssh 的日常使用

登录服务器的指令如下,如果不需要密码便进入则表示成功

ssh root@服务器的IP地址
# 如改变过端口则为
ssh -p 端口号 root@服务器的IP地址

GitHub

在GitHub上新建个项目,名字自拟

进入你所要上传的项目,输入一下指令

git init
git remote add origin https://github.com/Godi13/TravisSendToServer.git

Travis

登录Travis,如果没有找到新建项目的话,点击Sync account

先点开开关,然后点击齿轮,进入Setting页面

这里可以这么设置

配置文件

在本地项目中添加.travis.yml文件,先只加入一下配置

language: node_js
node_js: stable

接下来使用Travis命令行工具将id_rsa.pub加密,同时将环境变量传至Travis

# 安装travis命令行工具,如无法使用gem指令须先安装ruby
gem install travis
# --auto自动登录github帐号
travis login --auto
# 此处的--add参数表示自动添加脚本到.travis.yml文件中
travis encrypt-file ~/.ssh/id_rsa --add
# 这个命令会自动把 id_rsa 加密传送到 .git 指定的仓库对应的 travis 中去

本次执行完travis encrypt-file ~/.ssh/id_rsa --add报了下图这个错误,是网路问题,终端翻墙即可

执行完以后会发现在Travis网站项目里面的Setting中的环境变量里多两个参数

并且在.travis.yml里的before_install周期中自动多了下面这2行

- openssl aes-256-cbc -K $encrypted_97d432d3ed20_key -iv $encrypted_97d432d3ed20_iv-in id_rsa.enc -out ~\/.ssh/id_rsa -d

默认生成的命令可能会在/前面带转义符\,我们不需要这些转义符,手动删掉所有的转义符,否则可能在后面引发莫名的错误

之后为了保证命令的顺利运行,我们还需要正确地设置权限和认证,注意第三行主机IP地址那里写自己服务器的IP

before_install
- openssl aes-256-cbc -K $encrypted_97d432d3ed20_key -iv $encrypted_97d432d3ed20_iv-in id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host 主机IP地址\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config

最后,就是在after_success周期中,添加上传服务器的指令即可,在这里要注意,如果没有stricthostkeychecking=no参数,将构建失败,详细原因请参考通过travis部署代码到远程服务器

# 没有修改过端口的,可以用这个,上传目录要加 -r 参数
- scp -o stricthostkeychecking=no -r 要上传的文件或目录 用户@域名或IP:/路径
# 由于我修改了默认的port,所以在这里也进行了加密处理
- scp -o stricthostkeychecking=no -P $PORT -r 要上传的文件或目录 用户@域名或IP:/路径

最最后上传所有文件到GitHub

git add .
git commit -m "Travis Send to Server"
git push

Travis查看log,显示成功上传

在这里可以看到我的配置文件项目地址,欢迎大家的反馈,希望能有所帮助

使用 Travis 将 GitHub 文件上传传至服务器相关推荐

  1. Flex2.0实现文件上传功能(服务器为ASP.NET)

    简介:         新的Flex2.0类库里提供了文件类,方便了上传/下载文件.下面的程序demo演示了Flex2.0生成flash来访问本地文件,在flash里上传用户选择的文件到服务器,fla ...

  2. github文件上传全流程-新手入门系列

    1.获取网络连接 直接访问github网站是非常慢的,甚至有时可能不能访问,所以需要重新获取网络连接. 使用下面网站:https://tool.chinaz.com/dns/ ->在输入框中输入 ...

  3. php处理上传文件的步骤,php文件上传步骤

    我们在开发网站的时候,经常会遇到需要制作文件上传功能,下面我们就为大家介绍一下php制作文件上传功能的详细步骤. 推荐教程:PHP视频教程 第一步:创建一个文件上传表单 允许用户从表单上传文件是非常有 ...

  4. 菜鸟教程php上传图片,PHP 文件上传

    PHP 文件上传 通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: enctype="multi ...

  5. php实现上传,轻松实现php文件上传功能

    PHP 文件上传 通过 PHP,可以把文件上传到服务器. 本章节实例在 test 项目下完成,目录结构为: test |-----upload             # 文件上传的目录 |----- ...

  6. 本地文件上传到ecs_将本地代码上传到GitHub

    使用github只需要简单的三步: 一:初始化本地仓库git 二:将自己的电脑与指定github账户关联 三:将自己的仓库与github上的某个项目关联 (一).初始化本地仓库git 首先下载git. ...

  7. GitHub 之 上传文件(一)

    本篇和另一篇文章是讲述如何通过 git 的一款命令行工具 Git Bash 将文件上传至Github账户中.在该篇博客中包含ssh key 的生成.绑定账户等内容! 首先确保自己拥有GitHub账号以 ...

  8. Github 之 本地上传代码到 Github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤)

    Github 之 本地上传代码到 github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤) 目录 Github 之 本地上传代码到 github ,并且添加 .gitig ...

  9. linux下github上传文件,linux下将本地文件上传到github中?

    今天编写一份Python基础代码,经过Linux上传到github上,遇到点问题,已经解决 1.首先sudo su 进入root 用户 2.ls 检查出当前文件下有什么文件 3. cd 进入你将要上传 ...

最新文章

  1. Android4.0 Design之设计规范的十大革新
  2. python绘制动态模拟图-用python生成地球运动的动态模拟动态图
  3. 生成 PDF 全攻略【1】初体验
  4. 稀疏和L1正规化(Sparsity and Some Basics of L1 Regularization )
  5. git通过gitosis来管理权限(三)
  6. Jpgraph php怎么变异,php使用Jpgraph绘制3D饼状图的方法
  7. DDD 领域驱动设计:贫血模型、充血模型的深入解读
  8. 万字图文 | 聊一聊 ReentrantLock 和 AQS 那点事(看完不会你找我)
  9. C# Socket服务端与客户端通信(包含大文件的断点传输)
  10. 文件流对象 c# 1614525948
  11. python django 动态网页_Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00...
  12. centos安装apache_实战Linux部署Apache
  13. 祝刘冬冬十八周岁快乐
  14. unity文字特殊效果
  15. Linux 误删文件后恢复文件
  16. openssl_verify(): supplied key param cannot be coerced into a public key错误解决的一种办法
  17. Mybatis:高级知识1- resultMap实现一对一、一对多、多对多
  18. Python金融系列第六篇:现代投资组合理论
  19. 优质的APP推广渠道那么多,怎么选才好?
  20. 2019上半年软件设计师考试体会

热门文章

  1. 拉丁超立方——样本点空间转换
  2. 华为q1设置虚拟服务器,华为路由Q1的上网设置教程
  3. 免费APP内测分发托管平台,支持应用合并、内测分发、扫码下载,下载量安装量统计,版本记录和应用在线封装打包app
  4. BLE Mesh (9) —— Mesh beacons
  5. 【论文笔记】Proofs-of-delay and randomness beacons in Ethereum-2017IEEE SB Workshop
  6. 变中求生 ——频繁变化的团队如何打造团队文化
  7. Tabs | jQuery UI
  8. 电脑如何录制在线课程?-QVE屏幕录制
  9. Linux 学习笔记16 信号量
  10. LZX 定义 - 转帖