pipeline {
    options {
        buildDiscarder(logRotator(numToKeepStr: '2'))
        disableConcurrentBuilds() 
    }
    agent { node { label 'ubuntu' } }
    
    stages {
       
        stage("clone and prepare build") {
            tools {
                jdk 'jdk_1.8_latest'
                ant 'ant_latest'
            } 
            steps {
           
     
                git 'https://github.com/apache/netbeans'
                sh 'rm -f *.json* '
                sh 'rm -f nbbuild/NetBeans-dev-NetBeans/*.zip'
                sh 'wget -Onetbeansrelease.json "https://gitbox.apache.org/repos/asf?p=netbeans-jenkins-lib.git;a=blob_plain;f=meta/netbeansrelease.json" '
                sh 'ant build -Dmetabuild.jsonurl=file:netbeansrelease.json'
                sh 'ant build-test-dist -Dmetabuild.jsonurl=file:netbeansrelease.json'
                stash includes: 'nbbuild/build/testdist.zip', name: 'testbuildzip'
                sh 'mv nbbuild/NetBeans-dev-NetBeans/netbeans*.zip nbbuild/NetBeansIDE.zip '
                stash includes: 'nbbuild/NetBeansIDE.zip', name: 'idebuildzip'
            }
        }
        stage ("EffectiveMatrix") 
        {
            matrix {
                agent { node { label 'ubuntu' } } 
            
                axes {
                    axis {
                        name 'JDK'
                        values 'jdk_1.8_latest', 'jdk_11_latest', 'jdk_17_latest'
                    }
                    axis {
                        name 'MODULE'
                        values 'platform', 'ide' 
                    }
                }
                stages {
                    stage('test') {
                        tools {
                            ant 'ant_latest'
                        } 
                        steps {
                            withAnt(jdk:"${env.JDK}") {
                                unstash 'testbuildzip'
                                unstash 'idebuildzip'
                                unzip  zipFile: 'nbbuild/build/testdist.zip', dir:'testdir'
                                unzip  zipFile: 'nbbuild/NetBeansIDE.zip', dir:'netbeans'
                                sh 'java -version'
                                sh 'ant -version'
                                // this is not good
                                sh 'ant -f testdist/unit/unit-all-unit.xml runtests -Dnetbeans.dest.dir=./netbeans'
                                
                            }
                        }
                        
                    }
                }}
        } 
        
    }
    
}
