This is an automated email from the ASF dual-hosted git repository.

jaikiran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git


The following commit(s) were added to refs/heads/master by this push:
     new 1f3323d  Introduce a script which can be used in a CI job to make it 
easier to test Java version compatibility of Ant
1f3323d is described below

commit 1f3323dd40b896cf1c332b55504be4fe6e43e29b
Author: Jaikiran Pai <jaiki...@apache.org>
AuthorDate: Mon Aug 26 11:29:20 2019 +0530

    Introduce a script which can be used in a CI job to make it easier to test 
Java version compatibility of Ant
---
 test-compatibility.sh | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/test-compatibility.sh b/test-compatibility.sh
new file mode 100755
index 0000000..3069e46
--- /dev/null
+++ b/test-compatibility.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Compiles and builds Ant with various different recent versions of Java and
+# then runs (only the) tests with the minimal supported version of Java runtime
+# (which as of Aug 2019, is Java 8).
+# This ensures/verifies that various Ant functionality works as expected
+# when Ant is built with a higher version of Java and is run against the 
minimal
+# supported version.
+# This script is ideal for using in a CI environment where it can be invoked
+# through a job which is configured to use various different JDK versions.
+
+# Fail the script on error
+set -e
+
+# Build (compile and generate the dist) the project using the Java version
+# that's already set in the environment
+echo "Using  ${JAVA_HOME} to build Ant"
+java -version
+
+# Fetch all the necessary thirdparty libs, before boostraping Ant
+ant -f fetch.xml -Ddest=optional
+
+# Now bootstrap Ant with all necessary thirdparty libs already fetched
+./build.sh allclean dist
+
+# Switch the JDK to Java 8 to run *only* the tests.
+# This will ensure that Ant built with different (higher) version of Ant
+# can be used by Java 8 runtime and can function properly for all Ant
+# functionality
+mkdir java-8-latest
+cd java-8-latest
+# Download latest Java 8 (we use Adopt OpenJDK binaries)
+wget 
https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_x64_linux_hotspot_8u222b10.tar.gz
+tar -zxf ./*.tar.gz
+# set JAVA_HOME to point to the newly extracted tar's content
+export JAVA_HOME=`echo \`pwd\`/\`echo */\``
+export PATH=$JAVA_HOME/bin:$PATH
+cd ..
+
+echo "Using ${JAVA_HOME} to run Ant tests"
+java -version
+
+# Set ANT_HOME to the boostraped version - the one which was built, using a 
different Java version, a few steps
+# earlier in this script
+export ANT_HOME=`pwd`/bootstrap
+# Run the tests. We intentionally skip the build (compilation etc) to avoid 
compiling the project
+# with the newly set Java version.
+ant -nouserlib -lib lib/optional test -Dskip.build=true 
-Dignore.tests.failed=true -Doptional.jars.whenmanifestonly=skip -Djenkins=t
+

Reply via email to