forked from webdetails/sparkl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
200 lines (145 loc) · 7.46 KB
/
build.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
191
192
193
194
195
196
197
198
199
200
<project name="Sparkl - Create and explore pentaho plugins." basedir="." default="dist"
xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
This build file is used to create the Sparkl project
and works with the common_build.xml file.
</description>
<!-- Import the common_build.xml file which contains all the default tasks -->
<import file="build-res/subfloor-pkg.xml" id="subfloor-pkg"/>
<property name="plugin.name"
value="sparkl"
description="Name of the plugin"/>
<property name="stage.dir"
value="${bin.dir}/stage"
description="Name of the resource directory"/>
<tstamp/>
<!-- Build the project.revision property -->
<property name="distribution.version" value="${project.stage}-${project.version}"/>
<echo>distribution.version = ${distribution.version}</echo>
<property name="plugin.artifact.id" value="${plugin.name}"/>
<property name="plugin.zipfile" value="${plugin.artifact.id}-${distribution.version}.zip"/>
<property name="plugin.disabled.zipfile" value="${plugin.artifact.id}-disabled-${project.version}.zip"/>
<target name="init" depends="subfloor.init">
<mkdir dir="src"/>
</target>
<!--=======================================================================
dist
Creates a distribution of this project's plugin zip
====================================================================-->
<target name="dist" depends="subfloor.dist" description="Creates a distribution">
<!-- delete and re-create the plugin dist folder tree -->
<mkdir dir="${stage.dir}"/>
<mkdir dir="${stage.dir}/${plugin.name}"/>
<mkdir dir="${stage.dir}/${plugin.name}"/>
<mkdir dir="${dist.dir}"/>
<!-- copy the entire plugin to that folder -->
<copy todir="${stage.dir}/${plugin.name}/" overwrite="true">
<fileset dir=".">
<include name="**/*"/>
<exclude name="bin/"/>
<exclude name=".git/"/>
<exclude name="**/.DS_Store"/>
<exclude name="**/Thumbs.db"/>
</fileset>
</copy>
<!-- create the version file -->
<tstamp/>
<property name="sequential.build.id" value="manual-${DSTAMP}"/>
<!-- create version.xml file -->
<echoxml file="${stage.dir}/${plugin.name}/version.xml">
<version branch='${project.stage}' buildId='${sequential.build.id}'>${distribution.version}</version>
</echoxml>
<!-- <echo file="${stage.dir}/${plugin.name}/version.xml"><version branch='${project.stage}' buildId='${sequential.build.id}'>${distribution.version}</version></echo> -->
<!-- create a zip file -->
<zip zipfile="${dist.dir}/${plugin.zipfile}"
basedir="${stage.dir}"
includes="${plugin.name}/**/*"
excludes="**/Thumbs.db **/.DS_Store"/>
<copy todir="${stage.dir}/${plugin.name}-disabled/${plugin.name}" overwrite="true">
<fileset dir="${stage.dir}/${plugin.name}"/>
</copy>
<copy file="${stage.dir}/${plugin.name}-disabled/${plugin.name}/plugin.xml.disabled"
tofile="${stage.dir}/${plugin.name}-disabled/${plugin.name}/plugin.xml" overwrite="true"/>
<!-- create a zip file -->
<zip zipfile="${dist.dir}/${plugin.disabled.zipfile}"
basedir="${stage.dir}/${plugin.name}-disabled"
includes="${plugin.artifact.id}/**/*"
excludes="**/Thumbs.db"/>
<!-- add a mock jar just so we can publish -->
<copy file="${dist.dir}/${plugin.disabled.zipfile}"
tofile="${dist.dir}/${ivy.artifact.id}-${project.revision}.jar" overwrite="true"/>
<!-- create marketplace.xml file -->
<!-- echoxml creates an xml header that might break the automatic build process -->
<!-- <echoxml file="${dist.dir}/marketplace.xml"> -->
<!-- <version> -->
<!-- <branch>${project.stage}</branch> -->
<!-- <version>${distribution.version}</version> -->
<!-- <name>${project.stage.name}</name> -->
<!-- <package_url> -->
<!-- ${package.url} -->
<!-- </package_url> -->
<!-- <description></description> -->
<!-- <build_id>${sequential.build.id}</build_id> -->
<!-- <min_parent_version>${marketplace.metadata.min_parent_version}</min_parent_version> -->
<!-- <development_stage> -->
<!-- <lane>${marketplace.metadata.development_stage.lane}</lane> -->
<!-- <phase>${marketplace.metadata.development_stage.phase}</phase> -->
<!-- </development_stage> -->
<!-- </version> -->
<!-- </echoxml> -->
<echo file="${dist.dir}/marketplace.xml"> <version>
<branch>${project.stage}</branch>
<version>${project.version}</version>
<name>${marketplace.metadata.name}</name>
<package_url>
${marketplace.metadata.package_url}
</package_url>
<description>
${marketplace.metadata.description}
</description>
<build_id>${sequential.build.id}</build_id>
<min_parent_version>${marketplace.metadata.min_parent_version}</min_parent_version>
<development_stage>
<lane>${marketplace.metadata.development_stage.lane}</lane>
<phase>${marketplace.metadata.development_stage.phase}</phase>
</development_stage>
</version></echo>
<move tofile="${dist.dir}/${ivy.artifact.id}-${project.revision}.zip" file="${dist.dir}/${plugin.zipfile}"/>
</target>
<!--=======================================================================
install-plugin
Installs the plugin locally
====================================================================-->
<target name="install-plugin" depends="clean, resolve, dist" description="Installs the plugin locally">
<fail message="plugin.local.install.solutions.dir not set - cannot copy"
unless="plugin.local.install.solutions.dir"/>
<delete dir="${plugin.local.install.solutions.dir}/system/${plugin.name}"/>
<copy todir="${plugin.local.install.solutions.dir}/system/${plugin.name}">
<fileset dir="${stage.dir}/${plugin.name}">
<include name="**/*"/>
</fileset>
</copy>
<get src="http://127.0.0.1:8080/pentaho/Publish?publish=now&class=org.pentaho.platform.plugin.services.pluginmgr.PluginAdapter&userid=${plugin.local.install.user}&password=${plugin.local.install.pass}"
dest="${stage.dir}/blah.html"/>
</target>
<!-- Overriding resolve target so we can add resolve-dev -->
<target name="resolve"
depends="resolve-default, resolve-test, resolve-codegen, resolve-runtime, ivy.check-releasable"
description="Retrieves all the dependent libraries" />
<target name="resolve-runtime" depends="resolve-init">
<ivy:resolve file="${ivyfile}" conf="runtime" />
<ivy:retrieve conf="runtime" pattern="${runtimelib.dir}/[module]-[revision](-[classifier]).[ext]" />
</target>
<target name="clean-jars">
<delete dir="${lib.dir}" />
<delete dir="${testlib.dir}" />
<delete dir="${runtimelib.dir}" />
</target>
<target name="publish-nojar" depends="subfloor-pkg.publish-nojar">
<ivy:makepom ivyfile="package-ivy-disabled.xml" pomfile="disabled-pom.xml" />
<antcall target="maven-publish-artifact">
<param name="publish.pomFile" value="disabled-pom.xml" />
<param name="publish.file" value="${dist.dir}/${plugin.disabled.zipfile}" />
</antcall>
</target>
</project>