jenkins 脚本

本文记载了使用jenkins部署时,用到过的脚本,给大家参考和自身以后的复用。该部署记载了一个项目(基于golang)的仓库拉取,到jenkins编译,并上传给指定服务器部署至结束。

在使用jenkins部署前,需要注意以下问题:

  • jenkins服务器如果需要在线编译仓库代码,需要安装正确的依赖
  • 尽量不要对其他使用到同jenkins服务器的同学产生影响,环境变量使用临时的export
  • 拉取代码为了避免过大过慢,拉取深度要设置为1,并指定分支,无权限时需要提供git密码账户
  • 部署任务需要支持多次执行,即一次部署的残留要clear干净。
# 环境变量
export GOROOT=/data/go1.9
export PATH=${PATH}:${GOROOT}/bin
export GOPATH=/home/tonnn/go

# rm
rm -rf ${GOPATH}/src/projectName;

# clone
cd ${GOPATH}/src
git clone -b dev https://username:password@xxx.xxx.com.git --depth 1;

# cd
cd projectName
# build
GOOS=linux GOARCH=amd64 go1.9 build -o project_srv

ls -l
# scp to dest
## scp -P 22 project_srv web@x.x.x.x:/tmp/project_srv;

# rsync 替代scp
rsync --delete -arvz project_srv  web@x.x.x.x:/home/web/projects/project_srv

# ssh and exec
ssh -tt web@x.x.x.x "\
rm /home/web/projects/projectName/project_srv; \
cp /tmp/project_srv /home/web/projects/projectName/project_srv; \
chmod 777 /home/web/projects/projectName/project_srv; \
supervisorctl restart project_srv; \
rm -f /home/web/projects/projectName/stdout_dev.log.* \
"

# print ok
echo ok;

# clear
cd ${GOPATH}/src
rm -rf projectName;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章