forked from ezScrum/ezScrum
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_RobotFramework.xml
190 lines (162 loc) · 8.37 KB
/
build_RobotFramework.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<?xml version="1.0" encoding="UTF-8"?>
<project name="PortableRobotFramework" basedir="." default="default">
<!-- 感謝蔚儒學長提供範例檔案,參考網址
http://tonylin.idv.tw/dokuwiki/doku.php/rf:rf:portable_robot_package
-->
<!-- 準備動作 -->
<!-- 1.在此建置腳本所在目錄建立 packages 目錄,並在此目錄下建立子目錄 jre -->
<!-- 2.將從網路下載的檔案 RobotFramework .jar & Selenium LIB .tar.gz 放到 packages 目錄下 -->
<!-- 3.將加工製作出來的可攜帶 JAVA Runtime Environment 各種版本 放到 packages/jre 目錄下 -->
<!-- NOTE -->
<!-- build 目錄為建置過程中的暫放目錄, dist 目錄為最終產出目錄 -->
<!-- 將 Linux & Windows 分成各自的 target -->
<!-- =================================================================== -->
<!-- Variable Declaration -->
<!-- =================================================================== -->
<!-- COMMON -->
<property name="build.dir" value="${basedir}/build" />
<property name="dist.dir" value="${basedir}/dist" />
<property name="packages.dir" value="${basedir}/packages" />
<property name="build.common.dir" value="${build.dir}/common-package" />
<property name="build.common.libs.dir" value="${build.common.dir}/Lib" />
<!-- 1.RobotFramework --><!-- 包含 jython -->
<property name="RF_VERSION" value="2.7.5" />
<property name="robotframework" value="robotframework-${RF_VERSION}.jar" />
<property name="rf.jar.file" value="${packages.dir}/${robotframework}" />
<!-- 2.Selenium LIB --><!-- 主要是用到它的原始碼(python),第一次執行會先做編譯動作 -->
<property name="S_VERSION" value="2.9.1" />
<property name="robotframework-selenium.package.dir" value="robotframework-seleniumlibrary-${S_VERSION}" />
<property name="robotframework-selenium" value="${robotframework-selenium.package.dir}.tar.gz" />
<property name="build.selenium.dir" value="${build.dir}/${robotframework-selenium.package.dir}" />
<property name="rfs.tar.file" value="${packages.dir}/${robotframework-selenium}" />
<!-- 3.JRE --><!-- 製作出可攜帶版本使得系統免裝 JAVA(但系統必須先設定 path 才可使用),製作方法請參考
http://stackoverflow.com/questions/1619662/where-can-i-get-the-latest-jre-jdk-as-a-zip-file-i-mean-no-exe-installer
-->
<property name="packages.jre.dir" value="${packages.dir}/jre" />
<!-- linux -->
<property name="JRE_LINUX_VERSION" value="?" />
<property name="linux-jre-x86.dir" value="jre1.6.0_31_i586"/>
<property name="linux-jre-x86" value="${linux-jre-x86.dir}.tar.gz" />
<property name="jre.linux.x86.tar.file" value="${packages.jre.dir}/${linux-jre-x86}" />
<!-- linux x64 -->
<property name="JRE_LINUX_x64_VERSION" value="?" />
<property name="linux-jre-x64.dir" value="jre1.6.0_31_x64"/>
<property name="linux-jre-x64" value="${linux-jre-x64.dir}.tar.gz" />
<property name="jre.linux.x64.tar.file" value="${packages.jre.dir}/${linux-jre-x64}" />
<!-- windows -->
<property name="JRE_WIN_VERSION" value="6u38" />
<property name="win-jre" value="jre-${JRE_WIN_VERSION}-windows.zip" />
<property name="jre.win.x86.zip.file" value="${packages.jre.dir}/${win-jre}" />
<!-- windows x64 -->
<property name="JRE_WIN_x64_VERSION" value="6u38" />
<property name="win-jre64" value="jre-${JRE_WIN_VERSION}-windows.zip" />
<!-- =================================================================== -->
<!-- COMMON -->
<!-- =================================================================== -->
<target name="default">
<antcall target="clear" />
<antcall target="prepare" />
<antcall target="package" />
<delete dir="${build.dir}" />
</target>
<target name="clear">
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
</target>
<target name="prepare">
<mkdir dir="${build.dir}" />
<mkdir dir="${dist.dir}" />
<mkdir dir="${build.common.dir}" />
<untar compression="gzip" src="${rfs.tar.file}" dest="${build.dir}" />
<untar compression="gzip" src="${jre.linux.x86.tar.file}" dest="${build.dir}" />
<untar compression="gzip" src="${jre.linux.x64.tar.file}" dest="${build.dir}" />
<unzip src="${jre.win.x86.zip.file}" dest="${build.dir}" />
<antcall target="create common folder" />
</target>
<target name="create common folder">
<copy tofile="${build.common.dir}/robotframework.jar" file="${rf.jar.file}" />
<mkdir dir="${build.common.libs.dir}" />
<copy todir="${build.common.libs.dir}">
<fileset dir="${build.selenium.dir}/src" />
</copy>
</target>
<target name="package">
<antcall target="package windows" />
<antcall target="package linux">
<param name="jre.package.name" value="${linux-jre-x86.dir}" />
<param name="package.name" value="linux-x86-portable-robotframework"/>
</antcall>
<antcall target="package linux">
<param name="jre.package.name" value="${linux-jre-x64.dir}" />
<param name="package.name" value="linux-x64-portable-robotframework" />
</antcall>
</target>
<!-- =================================================================== -->
<!-- LINUX -->
<!-- =================================================================== -->
<target name="package linux">
<copy todir="${build.dir}/${package.name}">
<fileset dir="${build.common.dir}" />
</copy>
<move todir="${build.dir}/${package.name}/jre" failonerror="false">
<fileset dir="${build.dir}/${jre.package.name}" />
</move>
<tar destfile="${dist.dir}/${package.name}.tar.gz" compression="gzip">
<tarfileset dir="${build.dir}">
<include name="${package.name}"/>
<include name="${package.name}/**"/>
<exclude name="${package.name}/jre/bin/java"/>
</tarfileset>
<tarfileset dir="${build.dir}" mode="755">
<include name="${package.name}/jre/bin/java"/>
</tarfileset>
</tar>
</target>
<target name="build_linux">
</target>
<target name="build_linux_x64">
</target>
<!-- =================================================================== -->
<!-- WINDOWS -->
<!-- =================================================================== -->
<target name="prepare_windows">
<!-- 建立建置目錄 -->
<mkdir dir="${build.dir}" />
<mkdir dir="${build.common.dir}" />
<!-- 解壓縮 Selenium LIB 到建置目錄下 -->
<untar compression="gzip" src="${rfs.tar.file}" dest="${build.dir}" />
<!-- 解壓縮 JRE 到建置目錄下 -->
<unzip src="${jre.win.x86.zip.file}" dest="${build.dir}/jre-${JRE_WIN_VERSION}" />
<!-- 將 RobotFramework package 複製到建置目錄下,並將解壓縮後 Selenium LIB 目錄 src 複製到建置目錄的 LIB 下 -->
<copy tofile="${build.common.dir}/robotframework.jar" file="${rf.jar.file}" />
<mkdir dir="${build.common.libs.dir}" />
<copy todir="${build.common.libs.dir}">
<fileset dir="${build.selenium.dir}/src" />
</copy>
</target>
<target name="package_windows">
<!-- 將 RobotFramework package + Selenium LIB (source code) 複製到輸出目錄下 -->
<copy todir="${build.dir}/win-portable-robotframework">
<fileset dir="${build.common.dir}" />
</copy>
<!-- 將 JRE 解開後的目錄與檔案移到輸出目錄下 -->
<move todir="${build.dir}/win-portable-robotframework/jre" failonerror="false">
<fileset dir="${build.dir}/jre-${JRE_WIN_VERSION}" />
</move>
<!-- 建立最終產出目錄 -->
<mkdir dir="${dist.dir}" />
<!-- 將輸出目錄壓縮並放到最終產出目錄下 -->
<zip destfile="${dist.dir}/win-portable-robotframework.zip" basedir="${build.dir}">
<include name="win-portable-robotframework" />
<include name="win-portable-robotframework/**" />
</zip>
</target>
<target name="build_windows">
<antcall target="clear" />
<antcall target="prepare_windows" />
<antcall target="package_windows" />
<delete dir="${build.dir}" />
</target>
<target name="build_windows_x64">
</target>
</project>