#!/usr/local/bin/ruby
require 'rubygems'
require 'uuidtools'
require 'logger'
require 'cgi'
exit(1) if ARGV.size < 3
#~ prj_name,svn_path, prj_id= ARGV[0],ARGV[1],ARGV[2]
HOST = "10.2.226.20:6080"
$log = Logger.new("/home/admin/taiji/logs/build_stdout.log",'daily',1048576)
$log.level = Logger::INFO
class TestPrj
attr :prj_name
attr :svn
attr :prj_id
attr :local_path
def initialize(prj_name,svn,prj_id,local_path)
@prj_name,@svn,@prj_id,@local_path = prj_name,svn,prj_id,local_path
end
def jar_file
"#{@local_path}/#{@prj_name}.jar"
end
def self.get_today_uuid_path(prj_name)
#"#{File.expand_path(File.dirname(__FILE__))}/test_jar/#{prj_name}/#{Time.now.strftime('%Y-%m-%d') }/#{UUIDTools::UUID.timestamp_create.to_s}"
"/home/admin/taiji/test_jar/#{prj_name}/#{Time.now.strftime('%Y-%m-%d') }/#{UUIDTools::UUID.timestamp_create.to_s}"
end
end
tp = TestPrj.new(ARGV[0],ARGV[1],ARGV[2],TestPrj.get_today_uuid_path(ARGV[0]))
$log.info("New Build")
$log.info("#{tp.inspect}")
system "svn co #{tp.svn} #{tp.local_path}/src"
($log.error("svn co #{tp.svn} #{tp.local_path}/src");exit(4)) if `echo $?`.chomp != '0'
Dir.chdir "#{tp.local_path}/src"
system "ls project.jelly project.xml 1>/dev/null 2>&1"
($log.error("project.jelly or project.xml not exit");exit(2)) if `echo $?`.chomp != '0'
system "antx compile"
$log.error("antx compile") if `echo $?`.chomp != '0'
begin
fork do
($log.error("#{tp.local_path}/src/target/classes dir doesn't exist.");exit(6)) unless FileTest.exist?("#{tp.local_path}/src/target/classes")
Dir.chdir "#{tp.local_path}/src/target/classes"
system "jar cvf #{tp.jar_file} ."
($log.error("jar cvf #{tp.jar_file} .");exit(5)) if `echo $?`.chomp != '0'
exit(0)
end
system("curl -v \"http://#{HOST}/taiji/project/updateProjectJarFile.jsp?projectid=#{tp.prj_id}&jarFile=#{CGI.escape tp.jar_file}\"")
($log.error("couldn't access http://#{HOST}/taiji/project/updateProjectJarFile.jsp?projectid=#{tp.prj_id}&jarFile=#{tp.jar_file}");exit(3)) if `echo $?`.chomp != '0'
$log.info("#{tp.local_path}/#{tp.prj_name}.jar saved.") if `echo $?`.chomp == '0'
rescue
$log.error("Check your TestPrj ID, maybe not exist")
$log.error("error:#{$!} at:#{$@}")
exit(4)
ensure
end
Process.waitall
exit(0)
分享到:
相关推荐
太极拳理及太极拳技术分析.ppt
陈氏太极拳图说简体版是太极拳领域的重要文献,其原作者为近代著名的太极拳理论家陈鑫(1849-1929),字品三。陈鑫是陈氏太极拳第十六世传人、第八代传人,他将自己对太极拳的深刻理解和丰富实践心得著述成书。...
在这个项目中,开发者使用VB的基本元素,如控件、事件和方法,来设计并实现太极图的动态效果。 首先,我们来看一下VB源代码的核心概念。在VB中,一个应用程序通常包含窗体(Forms)、模块(Modules)、类(Classes...
太极开发者平台是专门用于构建和管理数字孪生应用的软件工具。它为开发者提供了一个全面的环境,包括开发工具、数据处理模块、可视化组件等,帮助用户快速构建起复杂的数字孪生系统。 3. **数据可视化** 在太极...
在Python编程语言中,"太极_python_太极python代码_"这个标题暗示了我们将探讨如何使用Python来绘制太极图,这是一种常见的图形艺术,同时也是一种很好的实践项目,可以帮助初学者更好地理解Python的基本语法和流程...
"太极图的二维方程描述方法" 太极图是一种古典的中国象征符号,表示宇宙的平衡和对立统一。太极图的二维方程描述方法是将太极图转化为数学方程式,以便更好地理解和分析太极图的结构和特征。 在太极图的二维方程...
在“旋转的太极”项目中,开发者可能使用CGContextRef上下文对象来绘制太极图,通过设置路径、颜色、线宽等属性来构建出太极图的黑白两极和旋转的线条。CGContextDrawPath函数用于绘制已定义的路径,而...
它支持全网免费爬取图片、音乐、小说、学习资源及漫画资源,涵盖娱乐、教育与信息等多个领域。用户只需简单操作,即可快速搜索并下载所需内容,无需繁琐的查找与筛选。太极软件以其高效、简洁的特点,成为广大用户...
此套教学视频是为了帮助初学者及进阶者更深入地理解和掌握四十八式的每一个招式和其背后的哲理。 一、太极拳概述 太极拳,源于明朝,由陈家沟的陈王廷创立,是中国传统武术的一大流派。它以阴阳哲学为基础,注重...
压缩包中的文件“实验二-任务1-太极动态图.VC.db”是Visual Studio的数据库文件,用于存储项目构建过程中的元数据,例如编译器设置、依赖项等。这表明这个项目是在Microsoft Visual Studio环境下开发的,可能使用C++...
标题中的“taichi-dance-free_NAO机器人_太极拳”表明这是一个关于NAO机器人执行太极拳动作的项目。NAO机器人是一款由法国Aldebaran Robotics公司(现为SoftBank Robotics)开发的人形服务机器人,常用于教育、研究...
太极是一个能够运行 Xposed 模块的框架,模块能通过它改变系统和应用的行为。太极既能以传统的 Root/刷机方式运作,也能免 Root/ 免刷机运行;并且它支持 Android 5.0 ~ 12。 简单来说,太极就是一个 类Xposed框架...
【太极公司携手Oracle构建企业协同门户】的项目旨在解决企业内部信息混乱、系统独立、缺乏统一界面的问题。太极计算机股份有限公司,作为信息技术和服务提供商,面临着客户对于高效业务协同和快速响应的需求。为应对...
综上所述,这个"旋转的太极图案"项目涵盖了Win32 API的窗口和绘图操作,C++的面向对象编程,计算机图形学的坐标变换,以及Windows消息处理机制等多个重要知识点。通过学习和实践这样的项目,开发者可以深入理解...
#### 需要安装的软件及下载地址 为了实现上述功能,需要以下软件: - **太极框架**:提供应用程序修改的基础平台。 - 下载地址:[https://www.taichi-app.com/#/index](https://www.taichi-app.com/#/index) - **...
太极-creator.zip源码cocos creator项目源码下载太极-creator.zip源码cocos creator项目源码下载 1.上线产品适合个人学习技术做项目参考 2.开发脚本为javsScropt或者typeScript 3.上线产品适合小公司开发游戏项目...
【迷你简太极】是一款小巧而精致的太极主题应用,它可能是专门为那些对太极文化感兴趣,却又没有太多时间或空间去实地学习的人群设计的。这款应用可能包含了太极的基本理论、动作演示以及指导教程,旨在帮助用户在...
首先,我们需要创建黑色和白色的画笔及画刷。例如,可以创建一个黑色的`CPen`对象`blackPen`,设置其样式为实心线,并指定RGB颜色值(0,0,0)代表黑色;同时创建一个黑色的`CBrush`对象`blackBrush`,使用`...
"武当太极拳源码" 这个标题指的是一个与太极拳相关的软件项目的源代码,可能是一个模拟太极拳动作、教学或者管理太极拳学习的应用程序。"武当太极拳"通常指的是太极拳的一种流派,源自中国的武当山,这里可能是将其...