使用salt實現jenkins發版時,遠程對go項目編譯重啓bash
一、go 版本1.12 使用go mod服務器
二、設置go鏡像ui
GOPROXY="https://goproxy.io"spa
三、slat 腳本code
sudo salt serverip cmd.run "/bin/sh /home/script/build.sh"
serverip:你的服務器
四、build.shserver
#!/bin/bash #進入項目目錄 cd /home/www/projectname #導出環境變量 source /etc/profile #殺掉進程 kill -9 `ps -ef | grep courseware | grep -v grep | awk '{print $2}'` #編譯 go build #使用nohup啓動 nohup ./courseware --release=true >/dev/null 2>&1 & #打印進程信息 ps -ef | grep courseware | grep -v grep #最後必須退出 exit
解釋:blog
一、筆者的可執行文件叫 courseware進程
二、遇到go 命令找不到,是由於遠程機沒法獲取go的環境變量,因此,執行一下 source /etc/profile ip
三、執行完腳本最後要 exit,由於使用nohup並不會本身退出cmd
四、若是GOPATH、GOCACHE 就改下目錄
筆者的go環境變量
export GOROOT=/usr/local/go export GOPATH=/usr/local/gopath export PATH=$PATH:$GOROOT/bin export GOPROXY="https://goproxy.io" export GOCACHE="/home/GOCACHE/go-build"