|
|
@@ -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 |
|
|
|
|