一、先安装jenkins

搜索网上教程

二、配置

1、新建任务

2、选择:构建一个自由风格的软件项目

3、勾选:丢弃旧构建

4、找到源码管理,选择:Multiple SCMs

5、配置git路径和分支,确保代码正常拉下来

6、选择:Additional Behaviours,检出子目录。这里要把项目源代码单独放到某个文件夹中,用于区分后面设置的gopath

7、选择构建环境:Set up Go programming language tools,找到go对应版本。如果没有则先保存再去配置

7.1、如果没有go版本则配置,选择系统管理->全局工具配置->go,新增go版本,勾选自动安装,选择对应的版本,保存。这里原理介绍下:这里配置好后,回到新建任务页面刷新会在Set up Go programming language tools中看到对应版本。但是,整个服务器或者项目都还是没有go安装,go只在该项目任务构建时才会进行下载和安装,第一次会安装,后面就直接用了。并且不会影响别的项目任务,完全可以互相隔离。比如,可以配置不同的任务对应不同的go版本!

三、配置程序

#!/bin/bash -il

whoami

echo "=====================build start========================="

ls -l

#配置GOPATH

export GOPATH=$WORKSPACE

export GO111MODULE=on

export GOCACHE=$GOPATH/pkg/cache

export GOPROXY=https://goproxy.io

export RUN_MODE=dev

source_path=$WORKSPACE/src

echo "==================检查环境变量=================="

echo "GOPATH:${GOPATH}"

echo "GO111MODULE :${GO111MODULE}"

echo "GOPROXY:${GOPROXY}"

echo "GOCACHE:${GOCACHE}"

echo "GOROOT:${GOROOT}"

echo "RUN_MODE:${RUN_MODE}"

go version

go env

#执行go build

cd $source_path

#go mod tidy

#修改配置文件

#cp -r $WORKSPACE/config/api/test/* $WORKSPACE/api/conf/ -f

pwd

echo "go build main.go"

go build main.go

cp main go-logic

ls -l

echo "------------------------------------ rsync origin -----------------------------------------"

chown -R apache:users $source_path/main $source_path/go-logic

chmod 754 $source_path/main $source_path/go-logic

rsync -avzP --password-file=/usr/local/rsync/etc/pe_rsyncd.passwd --delete --exclude='.git/' --exclude='.db/' $source_path/ apache@192.168.10.01::apache/data/go/

echo "------------------------------------ rsync done -----------------------------------------"

sudo ssh -p 2016 root@192.168.10.01 "supervisorctl restart go:" |true

四、介绍

go会在第一发布时下载并安装,gopath就是当前任务目录,我采用gomod的方式,所以需要把源代码放在非gopath目录中,所以才需要检出到某个子目录里。这样就可以实现独立环境了

举报/反馈

一线码农

3495获赞 95粉丝
专注互联网技术,做IT技术的匠人
关注
0
0
收藏
分享