资讯专栏INFORMATION COLUMN

jenkins 集成 docker tomcat 自动化测试脚本

zlyBear / 1087人阅读

摘要:最近在搞,把自己写的集成脚本分享出来给大家。里面很多路径或者名称是我自己的,自行替换掉。

最近在搞jenkins + docker CI,把自己写的集成脚本分享出来给大家。里面很多路径或者名称是我自己的,自行替换掉。

#!/bin/sh
# Jenkins Build Shell Script
# Author zdzhou@iflytek.com

set -e 
# Get running docker image name
cid=`docker ps | grep "isearch" | awk {"print $1"}`
echo $cid

# If exists running isearch docker image, stop and remove it
if [ -n "$cid" ]
then
    echo Get the running docker container id of isearch: $cid
    docker stop $cid
    docker rm $cid
else  
    echo There is no running isearch docker container
fi

# Copy target war to dest directory
cd ${JENKINS_HOME}/workspace/${JOB_NAME}/itv-web/
echo Current work directory `pwd`
cp target/itv-web.war /usr/local/tomcat/webapps
echo Run docker image
docker run -d -p 8080:8080 -v /usr/local/isearch:/usr/local/isearch -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps --name=isearch${SVN_REVISION} isearch

# Wait for starting docker container
totalWait=0
until [ "`/usr/bin/docker inspect -f {{.State.Running}} isearch${SVN_REVISION}`" == "true" ] 
do
   totalWait=$[ $totalWait + 2 ]
   if (( $totalWait > 10 ))
   then
      echo "Start docker container timeout"
      exit 1
   fi
   echo "Waiting for starting docker container: $totalWait minute" 
   sleep 2m
done
echo "Start docker container success "

# Wait for starting tomcat
totalWait=0
until [ "`curl -o /dev/null --silent -m 10 --retry 1 --connect-timeout 10 --head --write-out "%{http_code}
" http://127.0.0.1:8080/itv-web/v3/videosearch/?appid=aginomoto`" = "200" ]
do 
  totalWait=$[ $totalWait + 3 ]
  if (($totalWait > 36 ))
  then 
    echo "Start tomcat timeout"
    exit 1
  fi
  echo "Wait for starting tomcat: "$totalWait" minute"
  sleep 3m
done 
echo "Start tomcat service success"

# Run automatic function test script
echo "Start automatic function test"
export LOG_HOME=${WORKSPACE}/test.log.d/${BUILD_NUMBER}
cd /data/jenkins_home/test.framework.d
exec ./automatic_test.sh 

原文链接http://segmentfault.com/a/1190000004297705

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26490.html

相关文章

  • docker学习

    摘要:入坑嘿嘿安装官方安装教程常用命令用构建镜像通过镜像生成容器是交互式模式对应是后台启动用本机的端口映射容器的端口进入正在运行的容器内查看镜像查看所有容器状态删除容器删除镜像重启构建用官方镜像启动将存放数据库信息的文件夹映射 Docker 入坑docker嘿嘿 ubantu安装docker 官方安装教程 docker常用命令 #用Dockerfile构建镜像 docker build ...

    沈建明 评论0 收藏0
  • Jenkins集成Docker镜像实现自动发布

    摘要:集群环境的部署方式使用集群管理工具通过版本新增文件实现滚动升级容器等同于应用的部署 1. 思路&流程 Jenkins集成Docker镜像实现自动发布与Jenkins发布mavne项目思路一样总体流程 为:Jenkins 拉去远端源码 —— gitl实现应用打包 —— jenkins本地把应用程序打包进Docker镜像 ...

    defcon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<