一、jenkins 安装
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle等插件。使用起来也比较方便。在安装时需要安装java环境。
yum install java
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
# 安装完后如需要修改web端口的需要修改配置文件
vim /etc/sysconfig/jenkins
# web端口
# JENKINS_PORT="8080"
# 修改启动内存
# JENKINS_JAVA_OPTIONS="-XX:MaxPermSize=512m -Djava.awt.headless=true"
# 保存后可以启动
service jenkins start
# 查看启动密码
cat /var/lib/jenkins/secrets/initialAdminPassword
# 乌班图环境
# /var/log/jenkins/jenkins.log 日志文件
# etc/default/jenkins 配置文件
# /etc/init.d/jenkins 可执行文件
二、安装go
wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.14.1.linux-amd64.tar.gz
vim /etc/profile
export GOROOT=/usr/local/go #设置为go安装的路径
export GOPATH=/home/gocode #默认安装包的路径
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
三、安装git
sudo yum install -y git
四、使用
安装好环境后,拉取github上的代码到/home/go/poject 目录如下
然后进入jenkins 访问ip+域名 例如:127.0.0.1:8080 输入密码,然后选择安装默认插件
安装go plug
五、新建任务
1.添加go path环境
设置go_env 安装目录,因为jenkins会调用golang脚本。
2.点击新建任务,输入任务名字、选择 “构建一个自由风格的软件项目” 依次填入内容
注意 credentials 是账户和密码要正确填写不然git pull 拉代码会失败。
设置构建环境需要选择golang的环境。
3.构建
构建脚本中要执行的意思是,执行构建的时候 会找到 ginweb 脚本的运行pid。然后kill 掉,拉取最新的代码,然后build一个新的可执行脚本,然后运行该脚本。这样就完成了一次构建。脚本可以根据具体需求编写。
#!/bin/bash
cd /home/go/project/ginweb
go_id=`ps -ef|grep "./ginweb" |grep -v "grep" | awk '{print $2}'`
if [ -z "$go_id" ];
then
echo "!!![ginweb server pid not found,Please verify how it works]"
else
kill -9 $go_id
echo "ginweb server is runing pid=$go_id"
echo "killed $go_id"
echo "clean old file"
rm -rf ginweb
go env -w GOPROXY=https://goproxy.cn,direct
go build
chmod -R 777 ginweb
echo "ginweb server is build success"
nohup ginweb >ginweb.log 2>&1 &
fi
4.构建之后
在构建后可以根据自己的需要做一些操作,如发邮件,钉钉消息等通知本次构建发布的就结果。
这样子整任务就新建好了。
六、执行构建
刷新列表新建的任务如下,列表中会显示上次构建记录,点进去可以构建详情,最右侧是构建按钮点击即可执行构建。
点击构建版本即可查看每次构建的日志,这样能准确知道每次构建任务的情况。
至此jenkins 部署golang项目实践完成。其实坑挺多
1.例如添加插件失败后重启jenkins失败。(可能是版本安装问题,重装就可以解决)
2.每次构建后jenkins会停掉(因为我是1h1g的服务器 跑起来有些吃力)
下次试试加入docker