import java.nio.file.Files buildscript { repositories { mavenCentral() mavenLocal() } dependencies { classpath "org.opensearch.gradle:build-tools:${opensearchVersion}" } } plugins { id "co.riiid.gradle" version "0.4.2" } group = 'com.o19s' version = "${ltrVersion}-os${opensearchVersion}" apply plugin: 'java' apply plugin: 'idea' apply plugin: 'opensearch.opensearchplugin' apply plugin: 'opensearch.java-rest-test' apply plugin: 'opensearch.rest-resources' //apply plugin: 'opensearch.yaml-rest-test' idea { module { downloadJavadoc = true downloadSources = true } } // license of this project licenseFile = rootProject.file('LICENSE.txt') // copyright notices noticeFile = rootProject.file('NOTICE.txt') // disable uploadArchives task for now, no upload happening currently //GSI TODO: disabled for now //uploadArchives.enabled = false opensearchplugin { name 'ltr' description 'Learning to Rank Query w/ RankLib Models' classname 'com.o19s.es.ltr.LtrQueryParserPlugin' // license of the plugin, may be different than the above license licenseFile = rootProject.file('LICENSE.txt') // copyright notices, may be different than the above notice noticeFile = rootProject.file('NOTICE.txt') } // In this section you declare the dependencies for your production and test code // OpenSearch dependency is included due to the build-tools, test-framework as well repositories { mavenCentral() mavenLocal() } dependencies { implementation "org.apache.lucene:lucene-expressions:${luceneVersion}" implementation "org.antlr:antlr4-runtime:${antlrVersion}" implementation "org.ow2.asm:asm:${ow2Version}" implementation "org.ow2.asm:asm-commons:${ow2Version}" implementation "org.ow2.asm:asm-tree:${ow2Version}" implementation 'com.o19s:RankyMcRankFace:0.1.1' implementation "com.github.spullara.mustache.java:compiler:0.9.3" //testImplementation 'org.apache.lucene:lucene-test-framework:${luceneVersion}' runtimeOnly 'org.locationtech.spatial4j:spatial4j:0.7' runtimeOnly 'org.locationtech.jts:jts-core:1.15.0' runtimeOnly 'org.apache.logging.log4j:log4j-core:2.17.1' } // see https://github.com/opensearch-project/OpenSearch/blob/0ba0e7cc26060f964fcbf6ee45bae53b3a9941d0/buildSrc/src/main/java/org/opensearch/gradle/precommit/DependencyLicensesTask.java dependencyLicenses { mapping from: /lucene-.*/, to: 'lucene' mapping from: /asm-.*/, to: 'asm' mapping from: /RankyMcRankFace.*/, to: 'lucene' //mapping from: /Ranky.*/, to: 'lucene' mapping from: /compiler.*/, to: 'lucene' } sourceSets { javaRestTest { compileClasspath += sourceSets["main"].output + sourceSets["test"].output + configurations["testRuntimeClasspath"] runtimeClasspath += output + compileClasspath } } java { withJavadocJar() withSourcesJar() } // Set to false to not use opensearch checkstyle rules // checkstyleMain.enabled = true // checkstyleTest.enabled = true // FIXME dependency license check needs to be enabled // dependencyLicenses.enabled = false // FIXME thirdparty audit needs to be enabled // thirdPartyAudit.enabled = false // Uncomment this to skip license header checks // licenseHeaders.enabled = false // No need to validate POM, as we do not upload to sonatype validateNebulaPom.enabled = false // Elastic tried to remove the logging requirement for plugins, but didn't get it quite right so this is a short term fix until 7.11 // https://github.com/elastic/opensearch/issues/65247 loggerUsageCheck.enabled = false githubRelease.doFirst { if (!System.getProperty('GITHUB_TOKEN', '')) { throw new Exception('Missing property GITHUB_TOKEN') } // check if zip file is there assert file("build/distributions/ltr-${version}.zip").exists() // rename zip file def currentVersion = version.replace('-SNAPSHOT', '') def filename = "build/distributions/ltr-${currentVersion}.zip" Files.copy(file("build/distributions/ltr-${version}.zip").toPath(), file(filename).toPath()) // configuration github { owner = 'gsingers' repo = 'opensearch-learning-to-rank-base' token = System.getProperty('GITHUB_TOKEN') tagName = currentVersion assets = [ filename ] targetCommitish = 'main' } }