前提:需要安装GitHub Branch Source插件

1、新建任务,选择任务类型为maven

2、点开参数化构建过程,配置分支参数,该参数能够自动拉取gitlab上的分支名称,无所单独维护

ae96f71c39bcaa2167606f8622aa2c28.png

3、配置其他参数,这两个参数主要是在shell脚本中判断是否需要立即运行容器、以及是否需要将镜像推送到远程仓库

aeeb24d43a80419c7111e37087016574.png

4、配置源码信息,此处是gitlab服务,默认的分支采用的是参数化构建中的branch参数,build时可以通过选择不同分支,来切换拉取代码的分支

c459e92d4c02e8088536addc3937c10a.png

5、触发器默认勾选第一个即可,此处暂不扩展

6、配置maven命令,构建时会首先执行此处命令

7c540c7f0a2e00dfcadca2e4461a95fd.png

7、配置build后的执行步骤,此处主要是执行的docker的编译,获取镜像名称;如果立即运行参数为true,则会获取当前运行的镜像容器,进行停止后,运行新版镜像;如果推送镜像参数为true,则会登录远程仓库,将生成的新版本镜像推送到远程仓库

980ac555e8432951b86133b2f4d333ee.png

8、参照邮件配置,可配置构建后发送邮件

9、参考脚本

SERVER_NAME=jenkins-demo

mvn package docker:build

IID=$(docker images | grep "$SERVER_NAME" | awk '{print $1}' | head -1)

TAG=$(docker images | grep "$SERVER_NAME" | awk '{print $2}' | head -1)

IM=${IID}:${TAG}

if ${runflag}; then

echo "del old container"

docker ps -a | grep "$SERVER_NAME" | awk '{print $1}'| xargs docker rm -f

echo "start container"

docker run -p 8002:8002 --name jenkins-demo -d ${IM}

echo "current container"

docker ps -a | grep "$SERVER_NAME"

echo "star service success!"

fi

if ${pushflag}; then

echo "docker login registry"

docker login -u=xxxx -p=xxxx registry.cn-hangzhou.aliyuncs.com

echo "docker push image to registry.cn-hangzhou.aliyuncs.com"

docker push ${IM}

echo "push image success!"

fi

Jenkins邮件配置可以自行查资料,此处不再赘述了,下一篇将讲述集成Gitlab配置Maven任务

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐