|
- #!/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 -p build/java-8-latest
- cd build/java-8-latest
- # Download latest Java 8 (we use Adopt OpenJDK binaries)
- wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u232b09.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
|