为了让jenkins执行构建时,更加的自动化,这里的自动化主要是针对于docker容器的。
【构建】在jenkins构建selenium脚本时,能够自动判断slenium grid(此部分,slenium grid采用docker的zalenium镜像)。笔者将这个判断的功能写入成了一个shell脚本,将其命名为"ifzalenium.sh"。
#此脚本---用来判断是否运行了zalenium容器
#----------------------------------------------------------
#判断是否存在elgalu/selenium 镜像
docker images | grep elgalu/selenium &> /dev/null
#如果不存在,使用docker-compose启动相关的zalnium容器
if [ $? -ne 0 ]
then
echo "dosel/zalenium is not existed,we will docker pull it!!!"
docker pull elgalu/selenium
else
echo "dosel/zalenium is existed!!!"
fi
#---------------------------------------
#判断是否存在zalenium容器
docker ps | grep zalenium &> /dev/null
#如果不存在,使用docker-compose启动相关的zalnium容器
if [ $? -ne 0 ]
then
echo "zalenium is not up,we will start up it!!!"
docker-compose -f /var/lib/jenkins/workspace/oschina_selenium_docker/oschina_docker.yaml up -d
#sudo docker run -it --name zalenium -p 4444:4444 \
#-v /var/run/docker.sock:/var/run/docker.sock \
#-v zalenium-videos:/home/seluser/videos \
#--privileged jamesz2011/selenium-chrome-firefox-v1 start &> /dev/null
else
echo "zalenium is up!!!"
fi
jenkins_freestyle的shell
sudo chmod a+x ${WORKSPACE}/ifzalenium.sh
sudo dos2unix ifzalenium.sh
sudo bash -s -x < ${WORKSPACE}/ifzalenium.sh
mvn clean test