github+travis实现自动部署
利用github + travis实现的是持续集成服务,但是在完成构建之后,我们能够通过ssh免密连接连接到部署服务器上,运行脚本就能完成代码自动部署。以后每次把代码push到github上后,服务器上就能够自动部署运行最新的代码。
step 1
首先是用github账号登录travis,并将要集成的仓库授权给travis,这个操作比较简单,不多做描述。
step 2
接下来是在项目的根目录下添加一个.travis.yml
文件,在这个文件里面定义执行环境和执行命令等。下面描述该文件的基本要素:
# 首先要指定语言环境,`language`标签指定所使用的语言,语言名称作为标签指定版本
language: go
go: # 使用1.10.x版本的golang
- '1.10'
sudo: required # 是否需要sudo权限
# install用于执行命令之前设置环境,此处安装必要的依赖
install:
- go get -u github.com/gorilla/mux
- go get -u github.com/gorilla/sessions
- go get -u github.com/op/go-logging
- mkdir -p $GOPATH/src/gopkg.in/mgo.v2 && git clone -b v2 https://github.com/go-mgo/mgo.git $GOPATH/src/gopkg.in/mgo.v2
- mkdir -p $GOPATH/src/golang.org/x/crypto && git clone https://github.com/golang/crypto $GOPATH/src/golang.org/x/crypto
# script执行构建的命令,此步的命令成功运行后即为构建成功
script:
- pwd
- cd src/ && go build main.go
# services包含所需的服务,比如此处用到mongodb数据库,需要在这里指出
services:
- mongodb
step 3
完成构建之后需要连接上服务器运行部署脚本,但是我们不能将服务器的密码暴漏了,因此需要配置ssh进行免密登录: