mirror of
https://github.com/google/nomulus.git
synced 2025-08-04 17:01:51 +02:00
Run cross-release SQL integration tests (#403)
* Run cross-release SQL integration tests Run SQL integration tests across arbitrary schema and server releases. Refer to integration/README.md in this change for more information. TESTED=Cloud build changes tested with cloud-build-local Used the published jars to test sqlIntegration task locally.
This commit is contained in:
parent
21f14681e1
commit
22004a4ee4
9 changed files with 324 additions and 12 deletions
|
@ -16,6 +16,7 @@ import java.lang.reflect.Constructor
|
|||
|
||||
plugins {
|
||||
id 'java-library'
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
// Path to code generated by ad hoc tasks in this project. A separate path is
|
||||
|
@ -112,6 +113,11 @@ configurations {
|
|||
soy
|
||||
closureCompiler
|
||||
|
||||
// Published jars that are used for server/schema compatibility tests.
|
||||
// See <a href="../integration/README.md">the integration project</a>
|
||||
// for details.
|
||||
nomulus_test
|
||||
|
||||
// Exclude non-canonical servlet-api jars. Our AppEngine deployment uses
|
||||
// javax.servlet:servlet-api:2.5
|
||||
// For reasons we do not understand, marking the following dependencies as
|
||||
|
@ -814,6 +820,66 @@ test {
|
|||
createUberJar('nomulus', 'nomulus', 'google.registry.tools.RegistryTool')
|
||||
project.nomulus.dependsOn project(':third_party').jar
|
||||
|
||||
// A jar with classes and resources from main sourceSet, excluding internal
|
||||
// data. See comments on configurations.nomulus_test above for details.
|
||||
task nomulusFossJar (type: Jar) {
|
||||
archiveBaseName = 'nomulus'
|
||||
archiveClassifier = 'public'
|
||||
from (project.sourceSets.main.output) {
|
||||
exclude 'google/registry/config/files/**'
|
||||
}
|
||||
from (project.sourceSets.main.output) {
|
||||
include 'google/registry/config/files/default-config.yaml'
|
||||
include 'google/registry/config/files/nomulus-config-unittest.yaml'
|
||||
}
|
||||
}
|
||||
|
||||
// An UberJar of registry test classes, resources and all dependencies.
|
||||
// See comments on configurations.nomulus_test above for details.
|
||||
// TODO(weiminyu): extract shareable code with root.ext.createUberJar
|
||||
task testUberJar (
|
||||
type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar) {
|
||||
mergeServiceFiles()
|
||||
archiveBaseName = 'nomulus-tests'
|
||||
archiveClassifier = 'alldeps'
|
||||
zip64 = true
|
||||
archiveVersion = ''
|
||||
configurations = [project.configurations.testRuntimeClasspath]
|
||||
from project.sourceSets.test.output
|
||||
// Excludes signature files that accompany some dependency jars, like
|
||||
// bonuncycastle. If they are present, only classes from those signed jars are
|
||||
// made available to the class loader.
|
||||
// see https://discuss.gradle.org/t/signing-a-custom-gradle-plugin-thats-downloaded-by-the-build-system-from-github/1365
|
||||
exclude "META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA"
|
||||
// Exclude SQL schema, which is a test dependency.
|
||||
exclude 'sql/flyway/**'
|
||||
// ShadowJar includes java source files when used on sourceSets.test.output.
|
||||
// They are not needed.
|
||||
exclude '**/*.java'
|
||||
}
|
||||
|
||||
artifacts {
|
||||
nomulus_test nomulusFossJar
|
||||
nomulus_test testUberJar
|
||||
}
|
||||
|
||||
publishing {
|
||||
repositories {
|
||||
maven {
|
||||
url project.publish_repo
|
||||
}
|
||||
}
|
||||
publications {
|
||||
nomulusTestsPublication(MavenPublication) {
|
||||
groupId 'google.registry'
|
||||
artifactId 'nomulus_test'
|
||||
version project.nomulus_version
|
||||
artifact nomulusFossJar
|
||||
artifact testUberJar
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task buildToolImage(dependsOn: nomulus, type: Exec) {
|
||||
commandLine 'docker', 'build', '-t', 'nomulus-tool', '.'
|
||||
}
|
||||
|
|
|
@ -85,6 +85,7 @@ public class JpaTransactionManagerRule extends ExternalResource {
|
|||
private static final String POSTGRES_DB_NAME = "postgres";
|
||||
|
||||
// Name of the optional property that specifies the root path of the golden schema.
|
||||
// TODO(weiminyu): revert this. The :integration project offers a better solution.
|
||||
@VisibleForTesting
|
||||
static final String GOLDEN_SCHEMA_RESOURCE_ROOT_PROP = "sql_schema_resource_root";
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue