Skip to content

Commit

Permalink
HSEARCH-4674 Update groovy script to list containers
Browse files Browse the repository at this point in the history
  • Loading branch information
marko-bekhta committed Nov 8, 2023
1 parent 9fb4831 commit 7ef5437
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 35 deletions.
80 changes: 72 additions & 8 deletions build/parents/integrationtest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,34 @@
<!--
To run tests against a different version of Elasticsearch, see CONTRIBUTING.md.
-->
<!-- Profile enabled when an Elasticsearch instance must be pulled -->
<profile>
<id>elasticsearch-run</id>
<activation>
<!-- Activate by default, i.e. if test.elasticsearch.connection.uris has not been defined explicitly -->
<property>
<name>!test.elasticsearch.connection.uris</name>
</property>
</activation>
<properties>
<test.elasticsearch.run.image.name>${test.elasticsearch.run.elastic.image.name}</test.elasticsearch.run.image.name>
<test.elasticsearch.run.image.tag>${test.elasticsearch.run.elastic.image.tag}</test.elasticsearch.run.image.tag>
</properties>
</profile>
<!-- Profile enabled when an Elasticsearch instance must NOT be run by Maven -->
<profile>
<id>elasticsearch-do-not-run</id>
<activation>
<!-- Activate if test.elasticsearch.connection.uris has been defined explicitly -->
<property>
<name>test.elasticsearch.connection.uris</name>
</property>
</activation>
<properties>
<test.elasticsearch.run.image.pull>false</test.elasticsearch.run.image.pull>
</properties>
</profile>

<profile>
<id>aws</id>
<activation>
Expand All @@ -84,6 +112,20 @@
</properties>
</profile>

<profile>
<id>opensearch</id>
<activation>
<property>
<name>test.elasticsearch.distribution</name>
<value>opensearch</value>
</property>
</activation>
<properties>
<test.elasticsearch.run.image.name>${test.elasticsearch.run.opensearch.image.name}</test.elasticsearch.run.image.name>
<test.elasticsearch.run.image.tag>${test.elasticsearch.run.opensearch.image.tag}</test.elasticsearch.run.image.tag>
</properties>
</profile>

<!-- =============================== -->
<!-- Database profiles -->
<!-- =============================== -->
Expand All @@ -100,7 +142,7 @@
<jdbc.driver.groupId>com.h2database</jdbc.driver.groupId>
<jdbc.driver.artifactId>h2</jdbc.driver.artifactId>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=h2
-Dorg.hibernate.search.integrationtest.orm.database=h2
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -112,8 +154,12 @@
<properties>
<jdbc.driver.groupId>org.postgresql</jdbc.driver.groupId>
<jdbc.driver.artifactId>postgresql</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.postgres.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.postgres.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=postgresql
-Dorg.hibernate.search.integrationtest.orm.database=postgresql
-Dorg.hibernate.search.integrationtest.orm.database.image.name=${test.database.run.image.tag}
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -125,8 +171,11 @@
<properties>
<jdbc.driver.groupId>org.mariadb.jdbc</jdbc.driver.groupId>
<jdbc.driver.artifactId>mariadb-java-client</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.mariadb.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.mariadb.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=mariadb
-Dorg.hibernate.search.integrationtest.orm.database=mariadb
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -138,8 +187,11 @@
<properties>
<jdbc.driver.groupId>com.mysql</jdbc.driver.groupId>
<jdbc.driver.artifactId>mysql-connector-j</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.mysql.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.mysql.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=mysql
-Dorg.hibernate.search.integrationtest.orm.database=mysql
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -151,8 +203,11 @@
<properties>
<jdbc.driver.groupId>com.ibm.db2</jdbc.driver.groupId>
<jdbc.driver.artifactId>jcc</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.db2.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.db2.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=db2
-Dorg.hibernate.search.integrationtest.orm.database=db2
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -164,8 +219,11 @@
<properties>
<jdbc.driver.groupId>com.oracle.database.jdbc</jdbc.driver.groupId>
<jdbc.driver.artifactId>ojdbc11</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.oracle.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.oracle.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=oracle
-Dorg.hibernate.search.integrationtest.orm.database=oracle
</failsafe.jvm.args.hibernate-orm>
<!-- avoid `ORA-01882: timezone region not found` exception on CI -->
<failsafe.jvm.args.jdbc>-Doracle.jdbc.timezoneAsRegion=false</failsafe.jvm.args.jdbc>
Expand All @@ -179,8 +237,11 @@
<properties>
<jdbc.driver.groupId>com.microsoft.sqlserver</jdbc.driver.groupId>
<jdbc.driver.artifactId>mssql-jdbc</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.mssql.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.mssql.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=mssql
-Dorg.hibernate.search.integrationtest.orm.database=mssql
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand All @@ -193,8 +254,11 @@
<!-- CockroachDB uses the same client protocol as PostgreSQL (pgwire), so the driver is the same. -->
<jdbc.driver.groupId>org.postgresql</jdbc.driver.groupId>
<jdbc.driver.artifactId>postgresql</jdbc.driver.artifactId>
<test.database.run.image.pull>true</test.database.run.image.pull>
<test.database.run.image.name>${test.database.run.cockroachdb.image.name}</test.database.run.image.name>
<test.database.run.image.tag>${test.database.run.cockroachdb.image.tag}</test.database.run.image.tag>
<failsafe.jvm.args.hibernate-orm>
-Dorg.hibernate.search.integrationtest.orn.database=cockroachdb
-Dorg.hibernate.search.integrationtest.orm.database=cockroachdb
</failsafe.jvm.args.hibernate-orm>
</properties>
</profile>
Expand Down
49 changes: 23 additions & 26 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,10 @@
<test.elasticsearch.run.opensearch.image.name>docker.io/opensearchproject/opensearch</test.elasticsearch.run.opensearch.image.name>
<test.elasticsearch.run.opensearch.image.tag>${test.elasticsearch.version}</test.elasticsearch.run.opensearch.image.tag>

<!-- Test containers ryuk image for container management-->
<test.testcontainers.run.image.name>testcontainers/ryuk</test.testcontainers.run.image.name>
<test.testcontainers.run.image.tag>0.5.1</test.testcontainers.run.image.tag>

<!-- Run containers for additional ORM databases -->
<test.database.run.skip>true</test.database.run.skip>
<!-- PostgreSQL -->
Expand Down Expand Up @@ -425,6 +429,17 @@
<test.database.run.cockroachdb.image.name>docker.io/cockroachdb/cockroach</test.database.run.cockroachdb.image.name>
<test.database.run.cockroachdb.image.tag>v23.1.4</test.database.run.cockroachdb.image.tag>

<!-- Docker images to be pulled. To be redefined in specific profiles of Elasticsearch/OpenSearch \
or database specific ones. -->
<test.database.run.image.pull>false</test.database.run.image.pull>
<test.database.run.image.name>h2</test.database.run.image.name>
<test.database.run.image.tag></test.database.run.image.tag>

<test.elasticsearch.run.image.pull>true</test.elasticsearch.run.image.pull>
<test.elasticsearch.run.image.name></test.elasticsearch.run.image.name>
<test.elasticsearch.run.image.tag></test.elasticsearch.run.image.tag>


<!-- Set empty default values to avoid Maven leaving property references (${...}) when it doesn't find a value -->

<surefire.jvm.args.memory>-Xmx512m -Xms128m</surefire.jvm.args.memory>
Expand Down Expand Up @@ -980,33 +995,15 @@
-->
<script><![CDATA[
def images = []
def isFalseString = { string -> !string || !Boolean.parseBoolean( string ) }
if ( isFalseString( '${test.elasticsearch.run.elastic.skip}' ) ) {
images += '${test.elasticsearch.run.elastic.image.name}:${test.elasticsearch.run.elastic.image.tag}'
}
if ( isFalseString( '${test.elasticsearch.run.opensearch.skip}' ) ) {
images += '${test.elasticsearch.run.opensearch.image.name}:${test.elasticsearch.run.opensearch.image.tag}'
}
if ( isFalseString( '${test.database.run.postgres.skip}' ) ) {
images += '${test.database.run.postgres.image.name}:${test.database.run.postgres.image.tag}'
}
if ( isFalseString( '${test.database.run.mariadb.skip}' ) ) {
images += '${test.database.run.mariadb.image.name}:${test.database.run.mariadb.image.tag}'
}
if ( isFalseString( '${test.database.run.mysql.skip}' ) ) {
images += '${test.database.run.mysql.image.name}:${test.database.run.mysql.image.tag}'
}
if ( isFalseString( '${test.database.run.db2.skip}' ) ) {
images += '${test.database.run.db2.image.name}:${test.database.run.db2.image.tag}'
}
if ( isFalseString( '${test.database.run.oracle.skip}' ) ) {
images += '${test.database.run.oracle.image.name}:${test.database.run.oracle.image.tag}'
}
if ( isFalseString( '${test.database.run.mssql.skip}' ) ) {
images += '${test.database.run.mssql.image.name}:${test.database.run.mssql.image.tag}'
def isTrueString = { string -> string && Boolean.parseBoolean( string ) }
def isNotBlankString = { string -> string?.trim() }
images += '${test.testcontainers.run.image.name}:${test.testcontainers.run.image.tag}'
if ( isTrueString( '${test.database.run.image.pull}' ) && isNotBlankString( '${test.database.run.image.name}' ) ) {
images += '${test.database.run.image.name}:${test.database.run.image.tag}'
}
if ( isFalseString( '${test.database.run.cockroachdb.skip}' ) ) {
images += '${test.database.run.cockroachdb.image.name}:${test.database.run.cockroachdb.image.tag}'
if ( isTrueString( '${test.elasticsearch.run.image.pull}' ) && isNotBlankString( '${test.elasticsearch.run.image.name}' ) ) {
images += '${test.elasticsearch.run.image.name}:${test.elasticsearch.run.image.tag}'
}
// Exclude images from non-dockerhub repositories
new File('${containerImagesListFile}').append( images.findAll{ref -> !(ref ==~ /^(?!((.*\.)?docker\.io))[\w\d\.]+\/[\w\d\.]+\/[\w\d\.]+(:.+)?$/)}.join('\n') + '\n' )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private DatabaseContainer() {


static {
String database = System.getProperty( "org.hibernate.search.integrationtest.orn.database" );
String database = System.getProperty( "org.hibernate.search.integrationtest.orm.database" );
DATABASE = SupportedDatabase.from( database );

DATABASE_CONTAINER = DATABASE.container();
Expand Down

0 comments on commit 7ef5437

Please sign in to comment.