基于Jenkins的持续集成开发后台实践

2017/03/02

持续集成开发

如果开启Jenkins时检测8080端口 被占用

用下面命令查看占用8080的进程并杀掉。 sudo lsof -i :8080 kill 1011 靠的 有守护进程,直接卸载掉Jenkins /Library/Application Support/Jenkins/Uninstall.command 切换jenkins的默认端口 sudo defaults write /Library/Preferences/org.jenkins-ci httpPort 7070 再重启jenkins

开启Jenkins 并加载备份配置数据卷

docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v ~/jenkins_home:/var/jenkins_home  -it myjenkins:v4
备份时的命令为
sudo docker cp e52a5e7fe510:~/jenkins_home /var
//sudo docker cp ./id_rsa e52a5e7fe510:/id_rsa

监听代码

有公网条件:在git项目中的setting的webhooks 填入 jenkins的“job”的“配置”中的“构建触发器”的“触发远程构建”拼接的token。 没有公网条件:就在jenkins 的“job”的“配置”中的“构建触发器”的“Poll SCM” 中 填入 “ */1 * * * * ” 每分钟检查更新一次。 http://www.cnblogs.com/yjmyzz/p/jenkins-tutorial-part-1.html

Jenkins 编译go项目 shell 脚本

export GOPATH=$WORKSPACE
export PATH=$PATH:$GOPATH/bin
export GOROOT=/usr/lib/go
export GOBIN=$GOPATH/bin
cd $WORKSPACE
go install ./src/github.com/callmebill/todolist/main.go
docker build -t goodjob:v1 .

邮件通知配置

要在系统设置中填好 “系统管理员邮件地址” 和 “邮件通知” 两者要保持一致,安装Email Extersion Plugin插件后需要填写 Extended E-mail Notification 配置一些全局变量供给 job中构建后的操作配置使用。

Golang 的测试覆盖率

go test -cover -coverprofile myapp.out
go tool cover -html=myapp.out -o myapp.html

首先简单讲讲公钥验证机制:

公钥和密钥是两份文件,服务端持有公钥,用来加密;客户端持有密钥,用来解密。客户端向服务端发起连接请求时,服务端会生成一串随机数,经过公钥加密后传给客户端。这时客户端会用密钥解密获取随机数,再返回服务端。最后服务端判断一下,如果客户端能够返回正确的随机数,就认为校验通过了 ,可以进行连接。否则您就从哪儿来会哪儿去吧。

  • ssh-keygen -t rsa

命令行 常用命令:

lsof -i:8888 查看监听8888端口的进程 kill 517 杀掉指定进程 linux 打印本机外网IP命令 : curl ifconfig.me contianer ipaddress : docker inspect -f ‘’ e52a5e7fe510 cat命令 : cat > huang_id_rsa « EOF

Pull request builder plugin的配置

http://www.cnblogs.com/zanjiahaoge666/p/6402738.html

Jenkins上执行的远程重启服务器的脚本:

export GOPATH=/Users/leeco/Desktop/GoWorkSpace
IMAGE_NAME='todo-image'
CONTAINER_NAME="todo-container"
cd $GOPATH/src/github.com/callmebill/todolist
docker build -t  $IMAGE_NAME  .
docker stop $CONTAINER_NAME
docker rm $CONTAINER_NAME
docker run --name $CONTAINER_NAME -p 8888:8888 -i $IMAGE_NAME >/dev/null 2>&1 &

Post Directory