# 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
install:
  - export PATH="$PATH:$TRAVIS_BUILD_DIR/nbbuild/travis"
  - export DISPLAY=:99.0
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  - sleep 3
script:
  - if [ "x$OPTS" == "x" ]; then OPTS="-quiet -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"; fi
  - if [ "x$TARGET" == "x" ]; then TARGET="build"; fi
  - ant $OPTS clean
  - ant $OPTS $TARGET
  - if [ "x$LICENSE" == "xtrue" ]; then ant -quiet verify-libs-and-licenses -Dverify-libs-and-licenses.haltonfailure=true; fi
  - if [ "x$SIGTEST" == "xtrue" ]; then ant check-sigtests; fi
  - if [ "x$SIGTEST" == "xtrue" ]; then ant gen-sigtests-release; fi
  - if [ "x$SCRIPT" != "x" ]; then ./$SCRIPT; fi

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
          
        - env: SIGTEST=false LICENSE=true
          jdk: openjdk8

        - env: SIGTEST=true LICENSE=false
          jdk: openjdk8

#        - env: TARGET="build-platform" SCRIPT=nbbuild/travis/scripting.sh
#          jdk: openjdk8

        - env: TARGET="build-platform" SCRIPT=nbbuild/travis/gensigtest.sh
          jdk: openjdk8
          
        - 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="-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:
            - OPTS="-quiet -Dcluster.config=platform -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false -Dtest-unit-sys-prop.ignore.random.failures=true -Dvanilla.javac.exists=true"
            - 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

        - 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
            #- 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
            - 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
            - 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
            #- 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
            - ant $OPTS -f ide/css.model test
            - 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
            - 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
            - ant $OPTS -f ide/editor.search test
            - 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/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.core test
            - ant $OPTS -f ide/xml.lexer test
            - ant $OPTS -f ide/xml.multiview test
            - ant $OPTS -f ide/xml.text test
            - ant $OPTS -f ide/xml.text.obsolete90 test
            - ant $OPTS -f ide/xml.xam test
            - ant $OPTS -f ide/xml.xdm test
            - ant $OPTS -f ide/xsl test
            
        - name: Test Java 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 java/java.completion test
            #- ant $OPTS -f java/spi.java.hints test
            - ant $OPTS -f java/java.hints.declarative test
            - ant $OPTS -f java/spring.beans test
            
        - name: Test Java completion with Java 11
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          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`
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f java/java.completion -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--limit-modules=java.base,java.logging,java.xml,java.prefs,java.desktop,java.management,java.instrument -Dtest.use.jdk.javac=true test

        - name: Test Java completion with Java 12
          jdk: openjdk8
          env:
            - OPTS="-quiet -Dcluster.config=java -Djavac.compilerargs=-nowarn -Dbuild.compiler.deprecation=false"
          before_script:
            - wget https://raw.githubusercontent.com/sormuras/bach/master/install-jdk.sh
            - export TEST_JDK=`bash install-jdk.sh --feature 12 --license GPL --emit-java-home --silent | tail -1`
            - ant $OPTS clean
            - ant $OPTS build
          script:
            - ant $OPTS -f java/java.completion -Dtest.nbjdk.home=$TEST_JDK -Dtest.run.args=--add-exports=jdk.javadoc/com.sun.tools.javadoc.main=ALL-UNNAMED -Dtest.use.jdk.javac=true 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/languages.apacheconf test
            - hide-logs.sh ant $OPTS -f webcommon/languages.ini 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/libs.graaljs test
            - hide-logs.sh ant $OPTS -f webcommon/libs.truffleapi test
            - hide-logs.sh ant $OPTS -f webcommon/javascript.grunt 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/javascript2.doc 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
