Skip to content

Commit b8f876b

Browse files
GeoSanderjosegar74
andcommitted
Move release build properties to separate file (geonetwork#5348)
* Moved "global" props to build.properties file * Fixed shell scripts to replace versions in build.properties * Additional updates for updateReleaseVersions.sh - Version check fixes to in case a version number has more than 1 digit. - Fix path for documents conf.py update * Update updateBranchVersions.sh - Version check fixes to in case a version number has more than 1 digit. - Fix path for documents conf.py update * Fix regular expression in updateReleaseVersions.sh * Update resetReleaseVersions.sh - Version check fixes to in case a version number has more than 1 digit. - Fix path for documents conf.py update Co-authored-by: josegar74 <[email protected]>
1 parent dd5e443 commit b8f876b

6 files changed

+77
-90
lines changed

release/build.properties

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# General properties
2+
appName=GeoNetwork
3+
displayName=GeoNetwork opensource
4+
homepage=https://geonetwork-opensource.org
5+
supportEmail=[email protected]
6+
7+
# Application version properties
8+
version=4.0.6
9+
subVersion=SNAPSHOT
10+
11+
# Java runtime properties
12+
javaVersion=1.8.0
13+
javaDisplayVersion=8
14+
jreUrl=https://adoptopenjdk.net/?variant=openjdk8
15+
jreName=AdoptOpenJDK

release/build.xml

+30-64
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,19 @@
4343
<os family="unix"/>
4444
</condition>
4545

46-
<!-- Project build properties -->
47-
<property name="appName" value="GeoNetwork"/>
48-
<property name="displayName" value="GeoNetwork opensource"/>
49-
<property name="homepage" value="https://geonetwork-opensource.org"/>
50-
<property name="version" value="4.0.6"/>
51-
<property name="subVersion" value="SNAPSHOT"/>
52-
<property name="javaVersion" value="1.8.0"/>
53-
<property name="jreUrl" value="http://openjdk.java.net/"/>
54-
<property name="OS" value="Compiled on ${os.name} (${osys})"/>
55-
<property name="propsdir" value="../.props"/>
46+
<!-- Import global build properties -->
47+
<property file="./build.properties"/>
48+
49+
<!-- Additional build properties -->
50+
<property name="bundleName" value="geonetwork-bundle"/>
51+
<property name="propsdir" value="target/props"/>
5652
<property name="ant.build.javac.target" value="1.8"/>
5753
<property name="debugOn" value="on"/>
5854

59-
<!-- Used for copyright year -->
55+
<!-- Copyright year and build date properties -->
6056
<tstamp>
6157
<format property="year" pattern="yyyy"/>
58+
<format property="buildDate" pattern="dd-M-yyyy" />
6259
</tstamp>
6360

6461
<!-- =================================================================================== -->
@@ -69,43 +66,17 @@
6966
<mkdir dir="${propsdir}"/>
7067

7168
<!-- Extract Git properties -->
72-
<exec executable="git" dir=".." output="git.properties">
69+
<exec executable="git" dir=".." output="target/git.properties">
7370
<arg value="remote"/>
7471
<arg value="-v"/>
7572
</exec>
76-
<property prefix="git" file="git.properties"/>
73+
<property prefix="git" file="target/git.properties"/>
7774

78-
<exec executable="git" dir=".." output="git2.properties">
75+
<exec executable="git" dir=".." output="target/git2.properties">
7976
<arg value="log"/>
8077
<arg value="--max-count=1"/>
8178
</exec>
82-
<property prefix="git2" file="git2.properties"/>
83-
84-
<!-- Update the properties file -->
85-
<propertyfile
86-
file="../web/src/main/webapp/WEB-INF/server.prop"
87-
comment="GeoNetwork opensource properties. These are also used by geonetwork at runtime">
88-
<!-- These are used by geonetwork at runtime -->
89-
<!-- DO NOT REMOVE!! -->
90-
<entry key="version" value="${version}"/>
91-
<entry key="subVersion" value="${subVersion}"/>
92-
<entry key="release" value="${version}"/>
93-
94-
<entry key="javaVersion" value="${javaVersion}"/>
95-
<entry key="jre_url" value="${jreUrl}"/>
96-
<entry key="ant.build.javac.target" value="1.8"/>
97-
<entry key="buildDate" type="date" value="now"
98-
pattern="yyyy-MM-dd'T'HH:mm:ssZ"/>
99-
100-
<entry key="date" type="date" value="now" pattern="yymmddHHmm"/>
101-
<entry key="day" type="date" value="now" pattern="dd-M-yyyy"/>
102-
<entry key="OS" value="${OS}"/>
103-
<entry key="debugOn" value="${debugOn}"/>
104-
105-
<entry key="git_revision" value="${git2.commit}"/>
106-
<entry key="git_url" value="${git.origin}"/>
107-
108-
</propertyfile>
79+
<property prefix="git2" file="target/git2.properties"/>
10980

11081
<!-- Make sure all files that we need have their version numbers etc. updated -->
11182

@@ -120,15 +91,12 @@
12091
filtering="on" overwrite="yes"/>
12192

12293
<echo message="Replacing template variables in readme files..."/>
123-
<replace file="${propsdir}/readme.html"
124-
propertyFile="../web/src/main/webapp/WEB-INF/server.prop">
125-
<replacefilter token="@version@" property="version"/>
126-
<replacefilter token="@subVersion@" property="subVersion"/>
127-
<replacefilter token="@day@" property="day"/>
128-
<replacefilter token="@jreUrl@" property="jre_url"/>
129-
<replacefilter token="@javaVersion@" property="javaVersion"/>
130-
</replace>
131-
<!-- Replace variables in ReadMe file that are not in server.prop -->
94+
95+
<replace file="${propsdir}/readme.html" token="@version@" value="${version}"/>
96+
<replace file="${propsdir}/readme.html" token="@subVersion@" value="${subVersion}"/>
97+
<replace file="${propsdir}/readme.html" token="@day@" value="${buildDate}" />
98+
<replace file="${propsdir}/readme.html" token="@jreUrl@" value="${jreUrl}"/>
99+
<replace file="${propsdir}/readme.html" token="@javaVersion@" value="${javaVersion}"/>
132100
<replace file="${propsdir}/readme.html" token="@appName@" value="${appName}"/>
133101
<replace file="${propsdir}/readme.html" token="@displayName@" value="${displayName}"/>
134102
<replace file="${propsdir}/readme.html" token="@homepage@" value="${homepage}"/>
@@ -143,38 +111,36 @@
143111

144112
<!-- Create ZIP distribution for GeoNetwork + Jetty + shell scripts -->
145113
<target name="zip">
146-
<property file="../web/src/main/webapp/WEB-INF/server.prop"/>
147-
148-
<delete dir="../${appName}-${release}"/>
149-
<mkdir dir="../${appName}-${release}"/>
114+
<mkdir dir="target/${appName}-${version}"/>
150115

151-
<echo message="Creating ZIP file for ${appName} ${release}..."/>
116+
<echo message="Creating ZIP file for ${appName} ${version}..."/>
152117

153-
<zip destfile="../${appName}-${release}/${appName}-${release}-${subVersion}.zip">
118+
<zip destfile="target/${appName}-${version}/${bundleName}-${version}-${subVersion}.zip">
154119
<zipfileset dir="./bin" excludes="**.sh" prefix="bin" />
155120
<zipfileset dir="./bin" includes="**.sh" prefix="bin" filemode="774"/>
156-
<zipfileset dir="../.props" includes="readme.html, license.html" />
121+
<zipfileset dir="${propsdir}" includes="readme.html, license.html" />
157122
<zipfileset dir="./jetty" prefix="jetty" excludes="logs/*.log, logs/archive/*.log" />
158-
<zipfileset dir="../web/target/geonetwork" prefix="web/geonetwork" />
123+
<!-- Use war to include META-INF/MANIFEST.MF file -->
124+
<zipfileset src="../web/target/geonetwork.war" prefix="web/geonetwork" />
159125
<zipfileset dir="./data" prefix="web/geonetwork/data" />
160126
<zipfileset dir="./schemaPlugins" prefix="web/geonetwork/WEB-INF/data/config/schema_plugins" />
161127
</zip>
162128

163-
<checksum file="../${appName}-${release}/${appName}-${release}-${subVersion}.zip"
164-
pattern="{0} {1}"
165-
forceOverwrite="yes"/>
129+
<checksum
130+
file="target/${appName}-${version}/${bundleName}-${version}-${subVersion}.zip"
131+
forceOverwrite="yes"/>
166132

167133
</target>
168134

169135
<!-- Copy and rename WAR file and calculate checksum -->
170136
<target name="war" depends="zip">
171137

172138
<copy file="../web/target/geonetwork.war"
173-
tofile="../${appName}-${release}/${appName}-${release}-${subVersion}.war" />
139+
tofile="target/${appName}-${version}/${appName}-${version}-${subVersion}.war" />
174140

175-
<checksum file="../${appName}-${release}/${appName}-${release}-${subVersion}.war"
176-
pattern="{0} {1}"
141+
<checksum file="target/${appName}-${version}/${appName}-${version}-${subVersion}.war"
177142
forceOverwrite="yes"/>
178143

179144
</target>
145+
180146
</project>

resetReleaseVersions.sh

+9-6
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ then
3030
fi
3131

3232

33-
if [[ $1 != [0-9].[0-9].[0-9] ]]; then
33+
if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
34+
echo
35+
else
3436
echo
3537
echo 'Update failed due to incorrect versionnumber format: ' $1
3638
echo 'The format should be three numbers separated by dots. e.g.: 2.7.0'
@@ -40,7 +42,9 @@ if [[ $1 != [0-9].[0-9].[0-9] ]]; then
4042
exit
4143
fi
4244

43-
if [[ $2 != [0-9].[0-9].[0-9] ]]; then
45+
if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
46+
echo
47+
else
4448
echo
4549
echo 'Update failed due to incorrect new versionnumber format (' $2 ')'
4650
echo 'The format should be three numbers separated by dots. e.g.: 2.7.1'
@@ -63,11 +67,10 @@ echo 'sed will use the following option: ' $sedopt
6367
echo
6468

6569
# Update version in sphinx doc files
66-
sed $sedopt "s/${version}/${new_version}/g" docs/eng/users/source/conf.py
67-
sed $sedopt "s/${version}/${new_version}/g" docs/eng/developer/source/conf.py
70+
sed $sedopt "s/${version}/${new_version}/g" docs/manuals/source/conf.py
6871

69-
# Update ZIP distribution
70-
sed $sedopt "s/\<property name=\"version\" value=\"${version}\" \/\>/\<property name=\"version\" value=\"${new_version}\" \/\>/g" release/build.xml
72+
# Update release version
73+
sed $sedopt "s/version=${version}/version=${new_version}/g" release/build.properties
7174

7275
# Update version pom files
7376
find . -name pom.xml -exec sed $sedopt "s/${version}/${new_version}/g" {} \;

update-version.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,11 @@ echo ' * updating docs/manuals/source/conf.py'
100100
sed $sedopt "s/${version}/${new_version_main}/g" docs/manuals/source/conf.py
101101
echo
102102

103-
# Update ZIP distro
104-
echo 'ZIP distribution'
105-
echo ' * updating release/build.xml'
106-
sed $sedopt "s/property name=\"version\" value=\".*\"/property name=\"version\" value=\"${new_version_main}\"/g" release/build.xml
107-
sed $sedopt "s/property name=\"subVersion\" value=\".*\"/property name=\"subVersion\" value=\"${sub_version}\"/g" release/build.xml
103+
# Update release properties
104+
echo 'Release (ZIP bundle)'
105+
echo ' * updating release/build.properties'
106+
sed $sedopt "s/version=.*/version=${new_version_main}/g" release/build.properties
107+
sed $sedopt "s/subVersion=.*/subVersion=${sub_version}/g" release/build.properties
108108
echo
109109

110110
# Update SQL - needs improvements

updateBranchVersions.sh

+11-8
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ then
2626
exit
2727
fi
2828

29-
if [[ $1 != [0-9].[0-9].[0-9] ]]; then
29+
if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
30+
echo
31+
else
3032
echo
3133
echo 'Update failed due to incorrect versionnumber format (' $1 ')'
3234
echo 'The format should be three numbers separated by dots. e.g.: 2.7.0'
@@ -36,7 +38,9 @@ if [[ $1 != [0-9].[0-9].[0-9] ]]; then
3638
exit
3739
fi
3840

39-
if [[ $2 != [0-9].[0-9].[0-9] ]]; then
41+
if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
42+
echo
43+
else
4044
echo
4145
echo 'Update failed due to incorrect new versionnumber format (' $2 ')'
4246
echo 'The format should be three numbers separated by dots. e.g.: 2.7.1'
@@ -62,12 +66,11 @@ version="$1"
6266
new_version="$2"
6367

6468
# Update version in sphinx doc files
65-
sed $sedopt "s/${version}/${new_version}-SNAPSHOT/g" docs/eng/users/source/conf.py
66-
sed $sedopt "s/${version}/${new_version}-SNAPSHOT/g" docs/eng/developer/source/conf.py
69+
sed $sedopt "s/${version}/${new_version}-SNAPSHOT/g" docs/manuals/source/conf.py
6770

68-
# Update ZIP distribution
69-
sed $sedopt "s/\<property name=\"version\" value=\"${version}\" \/\>/\<property name=\"version\" value=\"${new_version}\" \/\>/g" release/build.xml
70-
sed $sedopt "s/\<property name=\"subVersion\" value=\"0\" \/\>/\<property name=\"subVersion\" value=\"SNAPSHOT\" \/\>/g" release/build.xml
71+
# Update release properties
72+
sed $sedopt "s/version=${version}/version=${new_version}/g" release/build.properties
73+
sed $sedopt "s/subVersion=0/subVersion=SNAPSHOT/g" release/build.properties
7174

7275
# Update version pom files
73-
find . -name pom.xml -exec sed $sedopt "s/${version}/${new_version}-SNAPSHOT/g" {} \;
76+
find . -name pom.xml -exec sed $sedopt "s/${version}/${new_version}-SNAPSHOT/g" {} \;

updateReleaseVersions.sh

+7-7
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ then
2626
exit
2727
fi
2828

29-
if [[ $1 != [0-9].[0-9].[0-9] ]]; then
30-
echo
29+
if [[ $1 =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
30+
echo
31+
else
3132
echo 'Update failed due to incorrect versionnumber format: ' $1
3233
echo 'The format should be three numbers separated by dots. e.g.: 2.7.0'
3334
echo
@@ -51,11 +52,10 @@ echo
5152
version="$1"
5253

5354
# Update version in sphinx doc files
54-
sed $sedopt "s/${version}-SNAPSHOT/${version}/g" docs/eng/users/source/conf.py
55-
sed $sedopt "s/${version}-SNAPSHOT/${version}/g" docs/eng/developer/source/conf.py
55+
sed $sedopt "s/${version}-SNAPSHOT/${version}/g" docs/manuals/source/conf.py
5656

57-
# Update ZIP distribution
58-
sed $sedopt "s/\<property name=\"subVersion\" value=\"SNAPSHOT\" \/\>/\<property name=\"subVersion\" value=\"0\" \/\>/g" release/build.xml
57+
# Update release subversion
58+
sed $sedopt "s/subVersion=SNAPSHOT/subVersion=0/g" release/build.properties
5959

6060
# Update version pom files
61-
find . -name pom.xml -exec sed $sedopt "s/${version}-SNAPSHOT/${version}/g" {} \;
61+
find . -name pom.xml -exec sed $sedopt "s/${version}-SNAPSHOT/${version}/g" {} \;

0 commit comments

Comments
 (0)