Fork me on GitHub

Jenkins之实现自动构建Go项目

Jenkins之实现自动构建Go项目

前言

项目需求:实现认证服务的自动构建,项目使用Go语言实现

实践操作

安装插件

[Manage Jenkins] -> [Manage Plugins] -> [Available] -> [Go Plugin]

安装完成重启下jenkins

安装及配置Go环境

安装Go环境

1
2
3
4
5
6
7
8
9
10
# tar -zxvf /data0/src/go1.10.linux-amd64.tar.gz -C /usr/local
cat >>/etc/profile<<EOF

# Go bin PATH setup
export PATH=$PATH:/usr/local/go/bin
export GOPATH="/data0/workspace/go"
EOF
# mkdir -p /data0/workspace/go
# source /etc/profile
# go env

配置Go环境
全局工具管理–>Go

添加构建项目

添加源码

默认情况下代码会checkout到$WORKSPACE/xxxx目录下,但是这样不符合Go项目的目录结构,需要将代码移动到正确的$GOPATH路径下

$WORKSPACE/../src/github.com/xxxx/xxxx-auth

设置Go tools

设置GOPATH

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Create GOPATH
export GOPATH=$WORKSPACE/..
export PATH=$GOPATH:$PATH

# Print Go version
go version

# Run make to perform the build
git_branch=`echo ${GIT_BRANCH} |awk -F '/' '{print $2}'`
git_commit=${GIT_COMMIT:0:8}
cd $GOPATH/src/github.com/xxxx/xxxx-auth && go build
cd $GOPATH/src/github.com/xxxx/xxxx-auth && tar -zcf $WORKSPACE/xxxx-auth-${git_branch}-${git_commit}-${date_time}.tar.gz xxxx-auth configs scripts logs templates

GIT_USER=`cd $GOPATH/src/github.com/xxxx/xxxx-auth && git log --pretty=format:'%an' -1`
GIT_EMAIL=`cd $GOPATH/src/github.com/xxxx/xxxx-auth && git log --pretty=format:'%ae' -1`
echo $GIT_USER
echo $GIT_EMAIL
if [ -f profile.txt ]
then
rm -f profile.txt
fi
echo "GIT_USER=$GIT_USER">profile.txt
echo "GIT_EMAIL=$GIT_EMAIL">>profile.txt

检查并验证构建结果

参考资料

http://zpjiang.me/2017/08/09/Setup-Jenkins-for-Go-Projects/

======================================================
希望各位朋友支持一下

本文作者:dongsheng
本文地址https://mds1455975151.github.io/archives/24256e32.html
版权声明:转载请注明出处!

坚持技术分享,您的支持将鼓励我继续创作!