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;

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