web的自己主动化公布

</pre>基于眼下业务的版本号。使用的maven 及tomcat <p></p><p>假设我们使用 Jenkins 公布是比較好的,可是存在一定的问题,就是须要学习时间,</p><p>基于我们的项目。我使用python 自己主动构建公布环境</p><p>脚本例如以下:</p><p></p><pre code_snippet_id="498203" snippet_file_name="blog_20141027_2_7484436" name="code" class="python">#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import ConfigParser
homedir = os.getcwd()
print homedir
config = ConfigParser.ConfigParser()
config.read("config.propties")
user_name = config.get("SVN", "user_name").decode(‘utf8‘).encode(‘cp936‘)
user_password = config.get("SVN", "user_password").decode(‘utf8‘).encode(‘cp936‘)
check_out_dir = homedir
log_name = config.get("SVN", "log_name").decode(‘utf8‘).encode(‘cp936‘)
script_dir = homedir
pkg_name=homedir+os.path.sep+"mabaobang-web"+os.path.sep+"target"+os.path.sep+"mabaobang-web.war"
rmote_ip=config.get("SVN", "rmote_ip")
rmote_user=config.get("SVN", "rmote_user")
rmote_passwd=config.get("SVN", "rmote_passwd")
print "pkg_name",pkg_name
script_dir=config.get("SVN", "script_dir").decode(‘utf8‘).encode(‘cp936‘)
command = "svn log -v --xml " + check_out_dir + " > " + log_name + " --username  " + user_name + " --password " + user_password
os.system( command )
os.chdir(check_out_dir)
print os.path.abspath(".").decode(‘cp936‘).encode(‘utf8‘)
command1="svn update "+ check_out_dir + " --username  " + user_name + " --password " + user_password +" --no-auth-cache --non-interactive --trust-server-cert"
os.system( command1 )
os.system("mvn clean:clean package");
file_object = open(‘123123.txt‘, ‘w‘)
file_object.write("open 192.168.15.234\n")
file_object.writelines("put "+pkg_name+"\n")
#file_object.writelines(file.newlines)
file_object.writelines("bye\n")
#file_object.writelines(file.newlines)
#file_object.writelines(file.newlines)
file_object.flush()
file_object.close()

if  os.path.exists(pkg_name):
    os.chdir(homedir)
    try:
        command_sftp="ftp.exe -l "+ rmote_user +" -pw "+rmote_passwd+" -b 123123.txt "
        os.system( command_sftp )
    except Exception,e:
        print  "done"
    finally:
        command_ssh="ssh.exe -ssh -pw "+ rmote_passwd +"  "+rmote_passwd+ "@192.168.15.234 ‘/home/momabo/deploy.sh‘ "
        os.system( command_ssh )
    

配置文件例如以下:

[SVN]
user_name=111111
user_password=000000
#check_out_dir=D:\11111\1111-parent
log_name=E:\log.log
#out_put_dir=D:\1111\111-parent
#war_name=D:\11111111-parent\11111111111111-web\target\111111111-web.war
rmote_ip=192.168.15.234
rmote_user=xxxx

须要二个开源软sftp.exe  http://the.earth.li/~sgtatham/putty/0.63/x86/psftp.exe

和 ssh.exe  http://the.earth.li/~sgtatham/putty/0.63/x86/plink.exe 进行下载后就能够了

自己主动化公布后台脚本

!/bin/bash 
###?

碌?梅?

猫?陋掳????娄碌?war路?碌陆录?

?驴?

录???忙
###碌??禄虏陆拢潞录矛虏茅?

??

娄碌?

掳眉??路帽??麓芦碌陆录??驴?录??

拢潞
USER_HOME=/home/3213123
TOMCAT_HOME=${USER_HOME}/tomcat
#?娄??碌??

驴?录
APP_HOME=${TOMCAT_HOME}/webapps/12313123-web
CONF_FILE=${APP_HOME}/WEB-INF/classes/config.properties
IP_ADD=127.0.0.1
MYSQL_USER_NAME=root
MYSQL_USER_PASSWD=213131
UPLOAD_DIR=/home/312312312/upload

###碌?

?禄虏陆拢潞录矛虏茅?

?

?

娄碌?掳眉?

?路帽??麓芦碌陆录?

?

驴?录??拢潞
if [ ! -f ${USER_HOME}/mabaobang-web.war ];then
    echo -e "\033[31m ERROR:Pkg ${USER_HOME}/mabaobang-web.war is not  exist. \033[0m"
    exit 1
fi
####碌?

露镁虏陆?拢?鹿路镁?帽
${TOMCAT_HOME}/bin/shutdown.sh
####?楼鲁媒?禄虏驴路?碌?????
if [ ! -d ${APP_HOME} ];then
    echo -e "\033[31m ERROR:Dir ${APP_HOME} is not  exist. \033[0m"
    exit 1
else
   rm -rf ${APP_HOME}/*
fi

mv ${USER_HOME}/1312313-web.war ${APP_HOME}/
cd ${TOMCAT_HOME}/webapps/m312321g-web
jar -xvf ${APP_HOME}/3132133-web.war

##??赂??盲????录镁
dos2unix  ${CONF_FILE}

##??赂??盲??

?

?录镁
sed -i "s/\/\/127.0.0.1/\/\/${IP_ADD}/g" ${CONF_FILE}
sed -i "s/^[ ]*jdbc_username=.*/jdbc_username=${MYSQL_USER_NAME}/g" ${CONF_FILE}
sed -i "s/^[ ]*jdbc_password=.*/jdbc_password=${MYSQL_USER_PASSWD}/g" ${CONF_FILE}
时间: 2024-07-29 02:53:04

web的自己主动化公布的相关文章

【前端福利】用grunt搭建自己主动化的web前端开发环境-完整教程

jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发者.假设你如今还不知道grunt或者听说过.可是不会熟练使用grunt,那你就真的真的真的out了(三个"真的"反复.表示重点). 至于grunt的作用,这里不具体说了.总之你假设做web前端开发,你一定要用grunt.另一点,它全然免费,没有盗版.既强大又免费的东西.为何不用? 当然了,你假设你能找到更好的替代grunt的其它工具

Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)

上篇:Maven实现Web应用集成測试自己主动化 -- 測试自己主动化(WebTest Maven Plugin) 之前介绍了怎样在maven中使用webtest插件实现web的集成測试,这里有个遗留问题,就是在运行maven的intergation測试时候web应用已经部署在容器中处于in service的状态,那么web应用的部署能否够自己主动化呢?在我们公司的系统中,因为使用了weblogic的cluster,自己写了脚步来实现部署,花费了不少人力物力,事实上java web应用早就有福音

Selenium2 Python 自己主动化測试实战学习笔记(五)

7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測试用例 手工測试用例是针对手工測试人员.自己主动化測试用例是针对自己主动化測试框架.前者是手工測试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析. 前者具有较好的异常处理能力,并且可以基于測试用例,制造各种不同的逻辑推断,并且人工測试步步跟踪,可以仔细定位问题.后者全然依照測试用例

自己主动化的在程序中显示SVN版本号

有时候会有这种情况,策划拿着应用过来提一个bug,但我们却不好确定策划的手机上装的应用相应的是那个代码版本号. 为了解决问题.我们希望能在应用上显示出当前应用所相应的代码版本号,即svn版本号. 构想了下,希望最后达到的效果有: 自己主动化,不须要每次编译版本号的时候有人为的步骤,比方编版本号的时候人为改动某个值或者点击某个脚本. 跨平台.对外公布的win32/iOS/Android版本号都能正确表现 全面性.不管用Windows上用vs开发/Mac OS上用XCode/Eclipse来进行开发

Eclipse中的Web项目自己主动部署到Tomcat

一.原因. 1.写java程序有一段时间了,但非常久没用eclipse了.所以使用eclipse编写的web项目部署到tomcat 的方式也不是非常清楚,以下记录一下将Eclipse 上的web项目自己主动部署到tomcat 上的方式: 二.部署问题 1.这里就有个问题.是怎么把Eclipse中的站点项目自己主动部署到tomcat中. 在Eclipse中做的Web项目默认是不支持将项目公布到Webserver上的,会公布到工作空间的某个文件夹下,因此无法在外部启动Tomcat来执行Web项目,仅

带有机器人框架的.NET自己主动化測试

Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg and Misys担任QA经理.同一时候他还是Sogeti的自己主动化測试顾问.Clayton对自己主动化測试超迷恋,还见识了怎样亲自成功实施測试自己主动化. ? 測试自己主动化的优点我们都非常清楚,更快地反馈问题,降低手工測试,持续集成就是当中随口可举的.測试团队成员越多,公司使用自己主动化越多

Android自己主动化构建之Ant多渠道打包实践(下)

前言 上一篇(Android自己主动化构建之Ant多渠道打包实践(上))已经介绍了Android的apk是怎样构建的,本篇博客继续Ant打包的实践过程. 集成友盟统计SDK 这里以友盟统计为例,对各个渠道进行统计.我们须要先集成它的SDK 配置权限 <!-- 权限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission&g

Android自己主动化測试解决方式

如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric.另外LessPainful也提供服务来进行真实设备上的自己主动化測试. Android自身提供了对instrumentation測试的基本支持,当中之中的一个就是位于android.test包内的ActivityInstrumentationTestCase2类,它扩展了JUnit的Test

Web应用的组件化(二)——管控平台 #7

Web应用的组件化(二) 管控平台 在上一篇中我们提到了组件化的大致思路,这一篇主要讲述在这么做之后,我们需要哪些外围手段去管控整个开发过程.从各种角度看,面对较大规模前端开发团队,都有必要建立这么一个开发阶段的协作平台. 在这个平台上,我们要做哪些事情呢? 1. HTML片段 我们为什么要管理HTML片段?因为有界面要用它们,当这些片段多了之后,需要有个地方来管理起来,可以检索.预览它们,还能看到大致描述. 这应该是整个环节中一个相对很简单的东西,照理说,有目录结构,然后剩下的就是单个的HTM