# 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
#
#   http://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.
language: java
addons:
  apt:
    packages:
      - ant
      - ant-optional
      - xvfb
      - openjfx
      - libgfortran3

install:
  - export PATH="$PATH:$TRAVIS_BUILD_DIR/nbbuild/travis"
  - export DISPLAY=:99.0
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  - sleep 3

cache:
  directories:
  - $HOME/.hgexternalcache

matrix:
    include:
        - name: Check line endings and verify RAT report
          script: 
            - nbbuild/travis/check-line-endings.sh
            - ant -quiet build-source-config
            - mkdir scratch
            - cd scratch
            - unzip -qq ../nbbuild/build/release-src*
            - ant -quiet rat -Drat-report.haltonfailure=true
          
        - name: Verify libs and licenses
          script:
            - ant verify-libs-and-licenses -Dverify-libs-and-licenses.haltonfailure=true

        - name: Run sigtests
          jdk: openjdk8
          env:
            - OPTS="-quiet -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS check-sigtests -Dfail.on.error=true
            - ant $OPTS gen-sigtests-release

        - name: Run gen-sigtests-release for platform cluster
          jdk: openjdk8
          script:
            - nbbuild/travis/gensigtest.sh
        
        - name: Pristine platform build
          jdk: openjdk8
          script: 
            - ant -quiet build-source-config -Dcluster.config=platform
            - mkdir tmpplatform
            - cd tmpplatform
            - unzip -qq ../nbbuild/build/platform-src*
            - ant build -Dcluster.config=platform
        
        - name: Compile all modules with OpenJDK8
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=full -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - ant $OPTS clean
          script:
            - ant $OPTS build
            - ant $OPTS test -Dtest.includes=NoTestsJustBuild

        - name: Compile all modules with OpenJDK11
          jdk: openjdk11
          env:
            - OPTS="-quiet -Dcluster.config=full -Dpermit.jdk9.builds=true -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - ant $OPTS clean
          script:
            - ant $OPTS build
            - ant $OPTS test -Dtest.includes=NoTestsJustBuild

        - name: Test harness modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=platform -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f harness/o.n.insane test
            - ant $OPTS -f harness/apisupport.harness test
            - ant $OPTS -f harness/nbjunit test
            - ant $OPTS -f harness/jellytools.platform test -Dtest.config=stable

        - name: Test platform modules, Batch 1
          jdk: openjdk8
          env:
            - OPTS="-silent -Dcluster.config=platform -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - travis_retry hide-logs.sh ant $OPTS -f platform/api.htmlui test
            - hide-logs.sh ant $OPTS -f platform/api.intent test
            - hide-logs.sh ant $OPTS -f platform/api.io test
            - hide-logs.sh ant $OPTS -f platform/api.progress test
            - hide-logs.sh ant $OPTS -f platform/api.progress.nb test
            - hide-logs.sh ant $OPTS -f platform/api.scripting test
            - hide-logs.sh ant $OPTS -f platform/api.search test
            - hide-logs.sh ant $OPTS -f platform/api.templates test
            - hide-logs.sh ant $OPTS -f platform/api.visual test
            - hide-logs.sh ant $OPTS -f platform/applemenu test
            - hide-logs.sh ant $OPTS -f platform/autoupdate.cli test
            - hide-logs.sh ant $OPTS -f platform/autoupdate.services test
            - hide-logs.sh ant $OPTS -f platform/autoupdate.ui test
            - hide-logs.sh ant $OPTS -f platform/core.execution test
            - hide-logs.sh ant $OPTS -f platform/core.io.ui test
            - hide-logs.sh ant $OPTS -f platform/core.kit test
            - hide-logs.sh ant $OPTS -f platform/core.multiview test
            - hide-logs.sh ant $OPTS -f platform/core.netigso test
            - hide-logs.sh ant $OPTS -f platform/core.network test
            - hide-logs.sh ant $OPTS -f platform/core.osgi test
            - hide-logs.sh ant $OPTS -f platform/core.output2 test
            - hide-logs.sh ant $OPTS -f platform/core.startup test
            - hide-logs.sh ant $OPTS -f platform/core.startup.base test
            - hide-logs.sh ant $OPTS -f platform/core.ui test
            - travis_wait hide-logs.sh ant $OPTS -f platform/core.windows test
            - hide-logs.sh ant $OPTS -f platform/editor.mimelookup test
            - hide-logs.sh ant $OPTS -f platform/editor.mimelookup.impl test
            - hide-logs.sh ant $OPTS -f platform/favorites test
            - hide-logs.sh ant $OPTS -f platform/javahelp test-unit
            - hide-logs.sh ant $OPTS -f platform/keyring.fallback test
            - hide-logs.sh ant $OPTS -f platform/keyring.impl test
            - hide-logs.sh ant $OPTS -f platform/lib.uihandler test
            - hide-logs.sh ant $OPTS -f platform/libs.javafx test
            - hide-logs.sh ant $OPTS -f platform/libs.junit4 test
            - travis_retry hide-logs.sh ant $OPTS -f platform/masterfs test
            - hide-logs.sh ant $OPTS -f platform/masterfs.linux test
            - hide-logs.sh ant $OPTS -f platform/netbinox test  -Dtest.config=stableBTD
            - hide-logs.sh ant $OPTS -f platform/o.n.bootstrap test
            - hide-logs.sh ant $OPTS -f platform/o.n.core test-unit
            - hide-logs.sh ant $OPTS -f platform/o.n.swing.outline test
            - hide-logs.sh ant $OPTS -f platform/o.n.swing.tabcontrol test
            
        - name: Test platform modules, Batch 2
          jdk: openjdk8
          env:
            - OPTS="-silent -Dcluster.config=platform -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - hide-logs.sh ant $OPTS -f platform/openide.actions test
            - hide-logs.sh ant $OPTS -f platform/openide.awt test
            - hide-logs.sh ant $OPTS -f platform/openide.compat test
            - hide-logs.sh ant $OPTS -f platform/openide.dialogs test
            - hide-logs.sh ant $OPTS -f platform/openide.execution test
            - hide-logs.sh ant $OPTS -f platform/openide.execution.compat8 test
            - travis_retry hide-logs.sh ant $OPTS -f platform/openide.explorer test
            - hide-logs.sh ant $OPTS -f platform/openide.filesystems test
            - hide-logs.sh ant $OPTS -f platform/openide.filesystems.compat8 test
            - hide-logs.sh ant $OPTS -f platform/openide.filesystems.nb test
            - hide-logs.sh ant $OPTS -f platform/openide.io test
            - travis_wait hide-logs.sh ant $OPTS -f platform/openide.loaders test
            - hide-logs.sh ant $OPTS -f platform/openide.modules test
            - hide-logs.sh ant $OPTS -f platform/openide.nodes test
            - hide-logs.sh ant $OPTS -f platform/openide.options test
            - travis_retry hide-logs.sh ant $OPTS -f platform/openide.text test
            - hide-logs.sh ant $OPTS -f platform/openide.util test
            - hide-logs.sh ant $OPTS -f platform/openide.util.enumerations test
            - hide-logs.sh ant $OPTS -f platform/openide.util.lookup test
            - hide-logs.sh ant $OPTS -f platform/openide.util.ui test
            - hide-logs.sh ant $OPTS -f platform/openide.windows test
            - hide-logs.sh ant $OPTS -f platform/options.api test-unit
            - hide-logs.sh ant $OPTS -f platform/options.keymap test
            - hide-logs.sh ant $OPTS -f platform/print test
            - hide-logs.sh ant $OPTS -f platform/progress.ui test
            - hide-logs.sh ant $OPTS -f platform/queries test
            - hide-logs.sh ant $OPTS -f platform/sampler test
            - hide-logs.sh ant $OPTS -f platform/sendopts test
            - hide-logs.sh ant $OPTS -f platform/settings test
            - hide-logs.sh ant $OPTS -f platform/spi.actions test
            - hide-logs.sh ant $OPTS -f platform/spi.quicksearch test
            - hide-logs.sh ant $OPTS -f platform/templates test
            - hide-logs.sh ant $OPTS -f platform/templatesui test
            - hide-logs.sh ant $OPTS -f platform/uihandler test
          
        - name: Test ide modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=minimal -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f ide/api.xml test
            - ant $OPTS -f ide/api.xml.ui test
            - travis_retry ant $OPTS -f ide/bugtracking test
            - travis_retry ant $OPTS -f ide/bugtracking.bridge test
            - ant $OPTS -f ide/bugtracking.commons test
            #- ant $OPTS -f ide/bugzilla test
            - ant $OPTS -f ide/code.analysis test
            - ant $OPTS -f ide/core.ide test
            - ant $OPTS -f ide/csl.api test
            - ant $OPTS -f ide/csl.types test
            - ant $OPTS -f ide/css.editor test
            - ant $OPTS -f ide/css.lib test
            - hide-logs.sh ant $OPTS -f ide/css.model test
            - travis_retry ant $OPTS -f ide/db test
            - ant $OPTS -f ide/db.dataview test
            - ant $OPTS -f ide/db.sql.editor test
            - ant $OPTS -f ide/docker.api test
            - ant $OPTS -f ide/docker.ui test
            - ant $OPTS -f ide/editor.bookmarks test
            #- ant $OPTS -f ide/editor.bracesmatching test
            - ant $OPTS -f ide/editor.document test
            - hide-logs.sh ant $OPTS -f ide/editor.fold test
            - ant $OPTS -f ide/editor.fold.nbui test
            - ant $OPTS -f ide/editor.guards test
            - ant $OPTS -f ide/editor.indent test
            - ant $OPTS -f ide/editor.indent.project test
            - ant $OPTS -f ide/editor.macros test
            - hide-logs.sh ant $OPTS -f ide/editor.search test
            - hide-logs.sh ant $OPTS -f ide/editor.settings test
            - ant $OPTS -f ide/editor.settings.storage test
            - ant $OPTS -f ide/editor.structure test
            - ant $OPTS -f ide/editor.tools.storage test
            - ant $OPTS -f ide/editor.util test
            - ant $OPTS -f ide/extbrowser test
            - ant $OPTS -f ide/extexecution.base test
            - ant $OPTS -f ide/gsf.testrunner.ui test
            - travis_retry ant $OPTS -f ide/html test
            - ant $OPTS -f ide/html.custom test
            #- ant $OPTS -f ide/html.editor test
            #- ant $OPTS -f ide/html.lexer test
            - ant $OPTS -f ide/html.parser test
            - ant $OPTS -f ide/html.validation test
            - ant $OPTS -f ide/hudson test
            - ant $OPTS -f ide/hudson.git test
            - ant $OPTS -f ide/hudson.mercurial test
            - ant $OPTS -f ide/hudson.subversion test
            - ant $OPTS -f ide/hudson.tasklist test
            - ant $OPTS -f ide/hudson.ui test
            - ant $OPTS -f ide/javascript2.debug test
            - ant $OPTS -f ide/languages.yaml test
            - ant $OPTS -f ide/lexer test
            - ant $OPTS -f ide/lib.terminalemulator test
            - ant $OPTS -f ide/libs.freemarker test
            #- ant $OPTS -f ide/libs.git test
            - ant $OPTS -f ide/libs.graalsdk test
            #- ant $OPTS -f ide/localhistory test
            - ant $OPTS -f ide/lsp.client test
            - ant $OPTS -f ide/notifications test
            - ant $OPTS -f ide/o.openidex.util test
            #- ant $OPTS -f ide/parsing.api test
            #- ant $OPTS -f ide/parsing.indexing test
            - ant $OPTS -f ide/parsing.lucene test
            - ant $OPTS -f ide/project.ant test
            - ant $OPTS -f ide/project.ant.compat8 test
            - ant $OPTS -f ide/project.ant.ui test
            - ant $OPTS -f ide/project.libraries test
            - ant $OPTS -f ide/project.libraries.ui test
            - ant $OPTS -f ide/projectapi test
            - ant $OPTS -f ide/projectapi.nb test
            - ant $OPTS -f ide/projectuiapi.base test
            - ant $OPTS -f ide/refactoring.api test
            - ant $OPTS -f ide/schema2beans test
            - ant $OPTS -f ide/server test
            - ant $OPTS -f ide/spellchecker test
            - ant $OPTS -f ide/spi.editor.hints test
            #- ant $OPTS -f ide/spi.palette test
            - ant $OPTS -f ide/spi.tasklist test
            - ant $OPTS -f ide/tasklist.ui test
            - ant $OPTS -f ide/team.commons test
            - ant $OPTS -f ide/terminal.nb test
            - ant $OPTS -f ide/utilities test
            - ant $OPTS -f ide/versioning.masterfs test
            - ant $OPTS -f ide/versioning.ui test
            - ant $OPTS -f ide/versioning.util test
            - ant $OPTS -f ide/web.common test
            - ant $OPTS -f ide/web.common.ui test
            - ant $OPTS -f ide/web.webkit.debugging test
            - ant $OPTS -f ide/xml test
            - ant $OPTS -f ide/xml.axi test
            - ant $OPTS -f ide/xml.catalog test-unit
            - ant $OPTS -f ide/xml.core test
            - ant $OPTS -f ide/xml.lexer test
            - ant $OPTS -f ide/xml.multiview test
            - ant $OPTS -f ide/xml.retriever test
            - ant $OPTS -f ide/xml.schema.completion test -Dtest.config=stableBTD
            - ant $OPTS -f ide/xml.schema.model test
            - ant $OPTS -f ide/xml.text test
            - ant $OPTS -f ide/xml.text.obsolete90 test
            - travis_retry ant $OPTS -f ide/xml.wsdl.model test
            - ant $OPTS -f ide/xml.xam test
            - ant $OPTS -f ide/xml.xdm test
            - ant $OPTS -f ide/xsl test
            
        - name: Test nb modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=minimal -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f nb/deadlock.detector test
            - ant $OPTS -f nb/ide.branding test
            - ant $OPTS -f nb/o.n.upgrader test
            #- ant $OPTS -f nb/updatecenters test
            - ant $OPTS -f nb/welcome test
            
        - name: Test extide modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f extide/o.apache.tools.ant.module test
            
        - name: Test Java modules with nb-javac on Java 8
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            #- ant $OPTS -f java/ant.debugger test
            - hide-logs.sh ant $OPTS -f java/ant.freeform test
            #- ant $OPTS -f java/ant.grammar test
            - ant $OPTS -f java/api.debugger.jpda test
            - ant $OPTS -f java/api.java test
            - ant $OPTS -f java/api.maven test
            #- ant $OPTS -f java/beans test
            - ant $OPTS -f java/classfile test
            - ant $OPTS -f java/dbschema test -Dtest.config=stable
            #- ant $OPTS -f java/debugger.jpda test
            - hide-logs.sh ant $OPTS -f java/debugger.jpda.js test
            - hide-logs.sh ant $OPTS -f java/debugger.jpda.projects test
            - hide-logs.sh ant $OPTS -f java/debugger.jpda.projectsui test
            #- ant $OPTS -f java/debugger.jpda.truffle test
            #- ant $OPTS -f java/debugger.jpda.ui test
            - travis_wait hide-logs.sh ant $OPTS -f java/editor.htmlui test
            #- travis_wait 30 hide-logs.sh  ant $OPTS -f java/form test
            - ant $OPTS -f java/hudson.maven test
            - ant $OPTS -f java/java.completion test
            - hide-logs.sh ant $OPTS -f java/java.hints.declarative test
            #- ant $OPTS -f java/java.kit test
            #- ant $OPTS -f java/java.lexer test
            #- ant $OPTS -f java/java.lexer test
            #- ant $OPTS -f java/java.lsp.server test
            #- ant $OPTS -f java/java.metrics test
            - ant $OPTS -f java/java.module.graph test
            - ant $OPTS -f java/java.navigation test
            #- ant $OPTS -f java/java.openjdk.project test
            - ant $OPTS -f java/java.platform test
            - ant $OPTS -f java/java.platform.ui test
            - ant $OPTS -f java/java.preprocessorbridge test
            - hide-logs.sh ant $OPTS -f java/java.project test
            #- ant $OPTS -f java/java.project.ui test
            #- ant $OPTS -f java/java.source test
            #- ant $OPTS -f java/java.source.ant test
            - ant $OPTS -f java/java.source.base test
            - ant $OPTS -f java/java.source.compat8 test
            - ant $OPTS -f java/java.source.nbjavac test
            - ant $OPTS -f java/java.source.queriesimpl test
            #- ant $OPTS -f java/java.sourceui test
            - ant $OPTS -f java/java.testrunner test
            - ant $OPTS -f java/java.testrunner.ant test
            #- ant $OPTS -f java/javadoc test
            - ant $OPTS -f java/javawebstart test
            #- ant $OPTS -f java/jellytools.java test
            #- ant $OPTS -f java/jshell.support test
            #- ant $OPTS -f java/junit test
            - ant $OPTS -f java/junit.ant.ui test
            - ant $OPTS -f java/lib.nbjavac test
            #- ant $OPTS -f java/maven test
            #- ant $OPTS -f java/maven.embedder test
            - ant $OPTS -f java/maven.grammar test
            #- ant $OPTS -f java/maven.hints test
            #- ant $OPTS -f java/maven.htmlui test
            - ant $OPTS -f java/maven.indexer test
            - ant $OPTS -f java/maven.junit test
            - ant $OPTS -f java/maven.model test
            - ant $OPTS -f java/maven.osgi test
            #- ant $OPTS -f java/performance test
            #- ant $OPTS -f java/performance.java test
            #- ant $OPTS -f java/projectimport.eclipse.core test
            #- ant $OPTS -f java/refactoring.java test
            - ant $OPTS -f java/spellchecker.bindings.java test
            #- ant $OPTS -f java/spi.java.hints test
            - ant $OPTS -f java/spring.beans test
            - ant $OPTS -f java/testng test
            #- ant $OPTS -f java/testng.ant test
            #- ant $OPTS -f java/testng.ui test
            - ant $OPTS -f java/whitelist test
            - ant $OPTS -f java/xml.jaxb test

        - name: Test java.hints batch 1 with nb-javac on Java 8
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch1 -f java/java.hints test

        - name: Test java.hints batch 2 with nb-javac on Java 8
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch2 -f java/java.hints test

        - name: Test Java modules with nb-javac on Java 11
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 11 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS  -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f java/java.completion test
            - travis_retry ant $OPTS -f java/java.source.base test

        - name: Test Java modules with nb-javac on Java 13
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 13 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f java/java.completion test
            - ant $OPTS -f java/java.source.base test

        - name: Test java.hints batch 1 with nb-javac on Java 13
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 13 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch1 -f java/java.hints test

        - name: Test java.hints batch 2 with nb-javac on Java 13
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 13 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch2 -f java/java.hints test

        - name: Test Java modules without nb-javac on Java 14
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 14 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.use.jdk.javac=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f java/java.completion test
            - ant $OPTS -Dtest.config=vanilla-javac -f java/java.source.base test

        - name: Test refactoring.java without nb-javac on Java 14
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 14 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.use.jdk.javac=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - travis_retry ant $OPTS -f java/refactoring.java test-unit

        - name: Test java.hints batch1 without nb-javac on Java 14
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 14 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.use.jdk.javac=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch1-vanilla-javac -f java/java.hints test

        - name: Test java.hints batch2 without nb-javac on Java 14
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 14 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS -Dtest.nbjdk.home=$TEST_JDK -Dtest.use.jdk.javac=true"
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -Dtest.config=batch2-vanilla-javac -f java/java.hints test

        - name: Test apisupport modules
          jdk: openjdk8
          env: 
            - OPTS="-quiet -Dcluster.config=release -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f apisupport/apisupport.ant test
            - ant $OPTS -f apisupport/apisupport.project test
            - ant $OPTS -f apisupport/apisupport.refactoring test
            - ant $OPTS -f apisupport/apisupport.wizards test
            - ant $OPTS -f apisupport/maven.apisupport test
            - ant $OPTS -f apisupport/timers test -Dtest.config=stable

        - name: Test JavaFX modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f javafx/javafx2.editor test -Dtest.config=stable
            #- ant $OPTS -f javafx/javafx2.project test

        - name: Test ergonomics modules
          jdk: openjdk8
          env: 
            - OPTS="-quiet -Dcluster.config=release -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f ergonomics/ide.ergonomics test -Dtest.config=commit

        - name: Test profiler modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f profiler/profiler.oql test

        - name: Test webcommon modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=php -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - hide-logs.sh ant $OPTS -f webcommon/api.knockout test
            #- hide-logs.sh ant $OPTS -f webcommon/cordova test
            #- hide-logs.sh ant $OPTS -f webcommon/html.angular test
            - hide-logs.sh ant $OPTS -f webcommon/html.knockout test-unit
            - hide-logs.sh ant $OPTS -f webcommon/html.ojet test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.bower test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.cdnjs test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.grunt test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.karma test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.nodejs test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.v8debug test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.doc test
            #- hide-logs.sh ant $OPTS -f webcommon/javascript2.editor test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.extdoc test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.extjs test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.jade test
            - travis_retry hide-logs.sh ant $OPTS -f webcommon/javascript2.jquery test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.jsdoc test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.json test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.knockout test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.lexer test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.model test
            #- hide-logs.sh ant $OPTS -f webcommon/javascript2.nodejs test
            #- hide-logs.sh ant $OPTS -f webcommon/javascript2.prototypejs test
            #- hide-logs.sh ant $OPTS -f webcommon/javascript2.requirejs test
            - hide-logs.sh ant $OPTS -f webcommon/javascript2.sdoc test
            - hide-logs.sh ant $OPTS -f webcommon/languages.apacheconf test
            - hide-logs.sh ant $OPTS -f webcommon/languages.ini test
            #- hide-logs.sh ant $OPTS -f webcommon/lib.v8debug test
            - hide-logs.sh ant $OPTS -f webcommon/libs.graaljs test
            - hide-logs.sh ant $OPTS -f webcommon/libs.truffleapi test
            - hide-logs.sh ant $OPTS -f webcommon/selenium2.webclient test
            - hide-logs.sh ant $OPTS -f webcommon/web.clientproject test-unit
            - hide-logs.sh ant $OPTS -f webcommon/web.clientproject.api test
            - hide-logs.sh ant $OPTS -f webcommon/web.inspect test

        - name: "Versioning modules (ide/versioning and ide/versioning.core) tests"
          jdk: openjdk8
          env:
              - OPTS="-quiet -Dcluster.config=minimal -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
              - OPTS_TEST="-Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true"
              - GIT_TEST_REPO="$HOME/git_test_repo"
          script:
              # Build sources
              - ant $OPTS clean
              - ant $OPTS build
              # Run unit tests
              - ant $OPTS $OPTS_TEST -f ide/versioning.core test-unit
              - ant $OPTS $OPTS_TEST -f ide/versioning test-unit
              #Prepare git repo for tests
              - git init $GIT_TEST_REPO
              # Prepare config file for ide/versioning.core module
              - touch ide/versioning.core/test/qa-functional/data/tck.properties
              - echo "test.root = $GIT_TEST_REPO" > ide/versioning.core/test/qa-functional/data/tck.properties
              - echo "test.vcs = org.netbeans.modules.versioning.DelegatingVCS" >> ide/versioning.core/test/qa-functional/data/tck.properties
              # Run functional tests for ide/versioning.core module  
              - ant $OPTS $OPTS_TEST -f ide/versioning.core test-qa-functional
              # Prepare config file for ide/versioning module
              - touch ide/versioning/test/qa-functional/data/tck.properties
              - echo "test.root = $GIT_TEST_REPO" > ide/versioning/test/qa-functional/data/tck.properties
              - echo "test.vcs = org.netbeans.modules.git.GitVCS" >> ide/versioning/test/qa-functional/data/tck.properties
              # Run functional tests for ide/versioning module  
              - ant $OPTS $OPTS_TEST -f ide/versioning test-qa-functional

        - name: "Tests with mysql database"
          jdk: openjdk8
          services:
            - mysql
          env:
            - OPTS="-Dcluster.config=minimal -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
            - OPTS_TEST="-Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true -Dtest-unit-sys-prop.mysql.user=root -Dtest-unit-sys-prop.mysql.password=password"
          before_script:
            - echo "ALTER USER root@'localhost' IDENTIFIED BY 'password';\nFLUSH PRIVILEGES;\n" | mysql -u root
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - travis_retry ant $OPTS $OPTS_TEST -f ide/db.metadata.model test
            - travis_retry ant $OPTS $OPTS_TEST -f ide/db.mysql test
            
        - name: Test enterprise modules
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=enterprise -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f enterprise/spring.webmvc test
            - ant $OPTS -f enterprise/websvc.editor.hints test
            - ant $OPTS -f enterprise/websvc.websvcapi test
            - ant $OPTS -f enterprise/websvc.wsstackapi test
            
        - name: Test groovy modules on Java 8
          jdk: openjdk8
          env:
            - BUILD_OPTS="-quiet -Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
            - TEST_OPTS="-Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $BUILD_OPTS clean
            - ant $BUILD_OPTS build
          script:
            #- ant $TEST_OPTS -f groovy/groovy test
            #- ant $TEST_OPTS -f groovy/groovy.java test
            - ant $TEST_OPTS -f groovy/groovy.editor test
            - ant $TEST_OPTS -f groovy/groovy.gsp test
            #- ant $TEST_OPTS -f groovy/groovy.kit test
            - ant $TEST_OPTS -f groovy/groovy.support test
            
        - name: Test groovy modules on Java 11
          jdk: openjdk8
          env:
            - BUILD_OPTS="-quiet -Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
            - TEST_OPTS="-Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $BUILD_OPTS clean
            - ant $BUILD_OPTS build
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 11 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS  -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"            
          script:
            #- ant $TEST_OPTS -f groovy/groovy test
            #- ant $TEST_OPTS -f groovy/groovy.java test
            - ant $TEST_OPTS -f groovy/groovy.editor test
            - ant $TEST_OPTS -f groovy/groovy.gsp test
            #- ant $TEST_OPTS -f groovy/groovy.kit test
            - ant $TEST_OPTS -f groovy/groovy.support test
            
        - name: Test groovy modules on Java 14
          jdk: openjdk8
          env:
            - BUILD_OPTS="-quiet -Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
            - TEST_OPTS="-Dcluster.config=groovy -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $BUILD_OPTS clean
            - ant $BUILD_OPTS build
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 11 --license GPL --emit-java-home --silent | tail -1`
            - export OPTS="$OPTS  -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument,jdk.zipfs,java.scripting,java.naming -Dtest.bootclasspath.prepend.args=-Dno.netbeans.bootclasspath.prepend.needed=true"            
          script:
            #- ant $TEST_OPTS -f groovy/groovy test
            #- ant $TEST_OPTS -f groovy/groovy.java test
            - ant $TEST_OPTS -f groovy/groovy.editor test
            - ant $TEST_OPTS -f groovy/groovy.gsp test
            #- ant $TEST_OPTS -f groovy/groovy.kit test
            - ant $TEST_OPTS -f groovy/groovy.support test

        - name: Build the Visual Studio Code extension for Java
          jdk: openjdk8
          before_install:
            - nvm install 8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - (cd java/java.lsp.server; ant build-vscode-ext)

        - name: GRAALVM Tests
          jdk: openjdk8
          env: 
            - OPTS="-quiet -Dcluster.config=release -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - nbbuild/travis/scripting.sh
