This is an automated email from the ASF dual-hosted git repository.
snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 8a5b80a2d Separate Cloud Integration Tests (#2283)
8a5b80a2d is described below
commit 8a5b80a2d6e331052fb99632fa5405eb231740ef
Author: Tamas Mate <[email protected]>
AuthorDate: Mon Aug 11 15:02:46 2025 +0200
Separate Cloud Integration Tests (#2283)
Currently, cloud integration tests are part of the regular test suite
but require cloud credentials to execute properly. This creates
unnecessary overhead for developers who just want to run local builds
or for CI jobs that don't have cloud access configured.
---
.../src/main/kotlin/polaris-runtime.gradle.kts | 36 +++++----
... PolarisRestCatalogAwsIntegrationTestBase.java} | 10 +--
...olarisRestCatalogAzureIntegrationTestBase.java} | 10 +--
.../PolarisRestCatalogFileIntegrationTest.java | 5 --
... PolarisRestCatalogGcpIntegrationTestBase.java} | 10 +--
.../it/test/PolarisRestCatalogIntegrationBase.java | 8 --
runtime/service/README.md | 6 +-
runtime/service/build.gradle.kts | 94 ++++++++++++----------
.../polaris/service/it/RestCatalogAwsIT.java | 6 +-
.../polaris/service/it/RestCatalogAzureIT.java | 6 +-
.../polaris/service/it/RestCatalogGcpIT.java | 6 +-
.../polaris/service/it/RestCatalogViewAwsIT.java | 2 +
.../polaris/service/it/RestCatalogViewAzureIT.java | 2 +
.../polaris/service/it/RestCatalogViewGcpIT.java | 2 +
...che.polaris.service.it.ext.PolarisServerManager | 20 +++++
.../service/it/PolarisRestCatalogMinIOIT.java | 5 --
16 files changed, 116 insertions(+), 112 deletions(-)
diff --git a/build-logic/src/main/kotlin/polaris-runtime.gradle.kts
b/build-logic/src/main/kotlin/polaris-runtime.gradle.kts
index f52b2f16f..3d5cd18f9 100644
--- a/build-logic/src/main/kotlin/polaris-runtime.gradle.kts
+++ b/build-logic/src/main/kotlin/polaris-runtime.gradle.kts
@@ -31,8 +31,11 @@ testing {
// See https://github.com/quarkusio/quarkus/issues/22844
systemProperty("junit.jupiter.extensions.autodetection.enabled",
"true")
}
-
- if (testTask.name != "test") {
+ }
+ }
+ fun intTestSuiteConfigure(testSuite: JvmTestSuite) =
+ testSuite.run {
+ targets.all {
testTask.configure {
// For Quarkus...
//
@@ -42,15 +45,22 @@ testing {
dependsOn(tasks.named("quarkusBuild"))
}
}
- }
- }
- register<JvmTestSuite>("intTest") {
- targets.all {
- tasks.named("compileIntTestJava").configure {
- dependsOn(tasks.named("compileQuarkusTestGeneratedSourcesJava"))
+ tasks.named(sources.compileJavaTaskName).configure {
+ dependsOn("compileQuarkusTestGeneratedSourcesJava")
}
+ configurations.named(sources.runtimeOnlyConfigurationName).configure {
+ extendsFrom(configurations.getByName("testRuntimeOnly"))
+ }
+
configurations.named(sources.implementationConfigurationName).configure {
+ // Let the test's implementation config extend testImplementation,
so it also inherits the
+ // project's "main" implementation dependencies (not just the "api"
configuration)
+ extendsFrom(configurations.getByName("testImplementation"))
+ }
+ sources { java.srcDirs(tasks.named("quarkusGenerateCodeTests")) }
}
- sources { java.srcDirs(tasks.named("quarkusGenerateCodeTests")) }
+
+ listOf("intTest", "cloudTest").forEach {
+ register<JvmTestSuite>(it).configure { intTestSuiteConfigure(this) }
}
}
}
@@ -72,14 +82,6 @@ configurations.all {
}
}
-// Let the test's implementation config extend testImplementation, so it also
inherits the
-// project's "main" implementation dependencies (not just the "api"
configuration)
-configurations.named("intTestImplementation").configure {
- extendsFrom(configurations.getByName("testImplementation"))
-}
-
-dependencies { add("intTestImplementation",
java.sourceSets.getByName("test").output.dirs) }
-
configurations.named("intTestRuntimeOnly").configure {
extendsFrom(configurations.getByName("testRuntimeOnly"))
}
diff --git
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java
similarity index 85%
rename from
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java
rename to
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java
index 11abab685..64bf0f221 100644
---
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java
+++
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java
@@ -20,13 +20,12 @@ package org.apache.polaris.service.it.test;
import java.util.List;
import java.util.Optional;
-import java.util.stream.Stream;
import org.apache.polaris.core.admin.model.AwsStorageConfigInfo;
import org.apache.polaris.core.admin.model.StorageConfigInfo;
-import org.assertj.core.util.Strings;
/** Runs PolarisRestCatalogIntegrationBase test on AWS. */
-public class PolarisRestCatalogAwsIntegrationTest extends
PolarisRestCatalogIntegrationBase {
+public abstract class PolarisRestCatalogAwsIntegrationTestBase
+ extends PolarisRestCatalogIntegrationBase {
public static final String ROLE_ARN =
Optional.ofNullable(System.getenv("INTEGRATION_TEST_ROLE_ARN"))
.or(() ->
Optional.ofNullable(System.getenv("INTEGRATION_TEST_S3_ROLE_ARN")))
@@ -41,9 +40,4 @@ public class PolarisRestCatalogAwsIntegrationTest extends
PolarisRestCatalogInte
.setAllowedLocations(List.of(BASE_LOCATION))
.build();
}
-
- @Override
- protected boolean shouldSkip() {
- return Stream.of(BASE_LOCATION, ROLE_ARN).anyMatch(Strings::isNullOrEmpty);
- }
}
diff --git
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java
similarity index 83%
rename from
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java
rename to
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java
index 8453b5617..923f3592b 100644
---
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java
+++
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java
@@ -19,13 +19,12 @@
package org.apache.polaris.service.it.test;
import java.util.List;
-import java.util.stream.Stream;
import org.apache.polaris.core.admin.model.AzureStorageConfigInfo;
import org.apache.polaris.core.admin.model.StorageConfigInfo;
-import org.assertj.core.util.Strings;
/** Runs PolarisRestCatalogIntegrationBase test on Azure. */
-public class PolarisRestCatalogAzureIntegrationTest extends
PolarisRestCatalogIntegrationBase {
+public abstract class PolarisRestCatalogAzureIntegrationTestBase
+ extends PolarisRestCatalogIntegrationBase {
public static final String TENANT_ID =
System.getenv("INTEGRATION_TEST_AZURE_TENANT_ID");
public static final String BASE_LOCATION =
System.getenv("INTEGRATION_TEST_AZURE_PATH");
@@ -37,9 +36,4 @@ public class PolarisRestCatalogAzureIntegrationTest extends
PolarisRestCatalogIn
.setAllowedLocations(List.of(BASE_LOCATION))
.build();
}
-
- @Override
- protected boolean shouldSkip() {
- return Stream.of(BASE_LOCATION,
TENANT_ID).anyMatch(Strings::isNullOrEmpty);
- }
}
diff --git
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java
index 3cd2face1..7c50c67f3 100644
---
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java
+++
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java
@@ -46,11 +46,6 @@ public class PolarisRestCatalogFileIntegrationTest extends
PolarisRestCatalogInt
.build();
}
- @Override
- protected boolean shouldSkip() {
- return false;
- }
-
private static String stripTrailingSlash(String uri) {
return uri.endsWith("/") && uri.length() > "file:///".length()
? uri.substring(0, uri.length() - 1)
diff --git
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java
similarity index 83%
rename from
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java
rename to
integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java
index 92dd96973..381983933 100644
---
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java
+++
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java
@@ -19,13 +19,12 @@
package org.apache.polaris.service.it.test;
import java.util.List;
-import java.util.stream.Stream;
import org.apache.polaris.core.admin.model.GcpStorageConfigInfo;
import org.apache.polaris.core.admin.model.StorageConfigInfo;
-import org.assertj.core.util.Strings;
/** Runs PolarisRestCatalogIntegrationBase test on GCP. */
-public class PolarisRestCatalogGcpIntegrationTest extends
PolarisRestCatalogIntegrationBase {
+public abstract class PolarisRestCatalogGcpIntegrationTestBase
+ extends PolarisRestCatalogIntegrationBase {
public static final String SERVICE_ACCOUNT =
System.getenv("INTEGRATION_TEST_GCS_SERVICE_ACCOUNT");
public static final String BASE_LOCATION =
System.getenv("INTEGRATION_TEST_GCS_PATH");
@@ -38,9 +37,4 @@ public class PolarisRestCatalogGcpIntegrationTest extends
PolarisRestCatalogInte
.setAllowedLocations(List.of(BASE_LOCATION))
.build();
}
-
- @Override
- protected boolean shouldSkip() {
- return Stream.of(BASE_LOCATION,
SERVICE_ACCOUNT).anyMatch(Strings::isNullOrEmpty);
- }
}
diff --git
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java
index c8400e5ba..78817fe92 100644
---
a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java
+++
b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java
@@ -198,13 +198,6 @@ public abstract class PolarisRestCatalogIntegrationBase
extends CatalogTests<RES
fileIO.initialize(Map.of());
}
- /**
- * Determine whether the test should be skipped based on the environment or
configuration.
- *
- * @return true if the test should be skipped, false otherwise
- */
- protected abstract boolean shouldSkip();
-
@BeforeAll
static void setup(PolarisApiEndpoints apiEndpoints, ClientCredentials
credentials) {
adminCredentials = credentials;
@@ -224,7 +217,6 @@ public abstract class PolarisRestCatalogIntegrationBase
extends CatalogTests<RES
@BeforeEach
public void before(TestInfo testInfo) {
- Assumptions.assumeThat(shouldSkip()).isFalse();
String principalName = client.newEntityName("snowman-rest");
String principalRoleName = client.newEntityName("rest-admin");
principalCredentials =
managementApi.createPrincipalWithRole(principalName, principalRoleName);
diff --git a/runtime/service/README.md b/runtime/service/README.md
index 4aff45a7e..7d499b993 100644
--- a/runtime/service/README.md
+++ b/runtime/service/README.md
@@ -27,17 +27,17 @@ For S3:
```shell
export INTEGRATION_TEST_S3_PATH="s3://bucket/subpath"
export INTEGRATION_TEST_S3_ROLE_ARN="your-role-arn"
-./gradlew :polaris-runtime-service:intTest
+./gradlew :polaris-runtime-service:cloudTest
```
For Azure:
```shell
export INTEGRATION_TEST_AZURE_PATH="abfss://bucket/subpath"
export INTEGRATION_TEST_AZURE_TENANT_ID="your-tenant-id"
-./gradlew :polaris-runtime-service:intTest
+./gradlew :polaris-runtime-service:cloudTest
```
For GCS:
```shell
export INTEGRATION_TEST_GCS_PATH="gs://bucket/subpath"
export INTEGRATION_TEST_GCS_SERVICE_ACCOUNT="your-service-account"
-./gradlew :polaris-runtime-service:intTest
+./gradlew :polaris-runtime-service:cloudTest
```
diff --git a/runtime/service/build.gradle.kts b/runtime/service/build.gradle.kts
index 037776c40..6a3cc092b 100644
--- a/runtime/service/build.gradle.kts
+++ b/runtime/service/build.gradle.kts
@@ -212,50 +212,56 @@ tasks.named<Test>("test").configure {
jvmArgs("-Xshare:off")
}
-tasks.named<Test>("intTest").configure {
- maxParallelForks = 1
-
- val logsDir = project.layout.buildDirectory.get().asFile.resolve("logs")
-
- // JVM arguments provider does not interfere with Gradle's cache keys
- jvmArgumentProviders.add(
- CommandLineArgumentProvider {
- // Same issue as above: allow a java security manager after Java 21
- // (this setting is for the application under test, while the setting
above is for test code).
- val securityManagerAllow = "-Djava.security.manager=allow"
-
- val args = mutableListOf<String>()
-
- // Example: to attach a debugger to the spawned JVM running Quarkus, add
- //
-Dquarkus.test.arg-line=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
- // to your test configuration.
- val explicitQuarkusTestArgLine =
System.getProperty("quarkus.test.arg-line")
- var quarkusTestArgLine =
- if (explicitQuarkusTestArgLine != null) "$explicitQuarkusTestArgLine
$securityManagerAllow"
- else securityManagerAllow
-
- args.add("-Dquarkus.test.arg-line=$quarkusTestArgLine")
- // This property is not honored in a per-profile application.properties
file,
- // so we need to set it here.
-
args.add("-Dquarkus.log.file.path=${logsDir.resolve("polaris.log").absolutePath}")
-
- // Add `quarkus.*` system properties, other than the ones explicitly set
above
- System.getProperties()
- .filter {
- it.key.toString().startsWith("quarkus.") &&
- !"quarkus.test.arg-line".equals(it.key) &&
- !"quarkus.log.file.path".equals(it.key)
+listOf("intTest", "cloudTest")
+ .map { tasks.named<Test>(it) }
+ .forEach {
+ it.configure {
+ maxParallelForks = 1
+
+ val logsDir = project.layout.buildDirectory.get().asFile.resolve("logs")
+
+ // JVM arguments provider does not interfere with Gradle's cache keys
+ jvmArgumentProviders.add(
+ CommandLineArgumentProvider {
+ // Same issue as above: allow a java security manager after Java 21
+ // (this setting is for the application under test, while the
setting above is for test
+ // code).
+ val securityManagerAllow = "-Djava.security.manager=allow"
+
+ val args = mutableListOf<String>()
+
+ // Example: to attach a debugger to the spawned JVM running Quarkus,
add
+ //
-Dquarkus.test.arg-line=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
+ // to your test configuration.
+ val explicitQuarkusTestArgLine =
System.getProperty("quarkus.test.arg-line")
+ var quarkusTestArgLine =
+ if (explicitQuarkusTestArgLine != null)
+ "$explicitQuarkusTestArgLine $securityManagerAllow"
+ else securityManagerAllow
+
+ args.add("-Dquarkus.test.arg-line=$quarkusTestArgLine")
+ // This property is not honored in a per-profile
application.properties file,
+ // so we need to set it here.
+
args.add("-Dquarkus.log.file.path=${logsDir.resolve("polaris.log").absolutePath}")
+
+ // Add `quarkus.*` system properties, other than the ones explicitly
set above
+ System.getProperties()
+ .filter {
+ it.key.toString().startsWith("quarkus.") &&
+ !"quarkus.test.arg-line".equals(it.key) &&
+ !"quarkus.log.file.path".equals(it.key)
+ }
+ .forEach { args.add("${it.key}=${it.value}") }
+
+ args
}
- .forEach { args.add("${it.key}=${it.value}") }
-
- args
+ )
+ // delete files from previous runs
+ doFirst {
+ // delete log files written by Polaris
+ logsDir.deleteRecursively()
+ // delete quarkus.log file (captured Polaris stdout/stderr)
+
project.layout.buildDirectory.get().asFile.resolve("quarkus.log").delete()
+ }
}
- )
- // delete files from previous runs
- doFirst {
- // delete log files written by Polaris
- logsDir.deleteRecursively()
- // delete quarkus.log file (captured Polaris stdout/stderr)
- project.layout.buildDirectory.get().asFile.resolve("quarkus.log").delete()
}
-}
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
similarity index 84%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
index 553af07df..a229c1c16 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java
@@ -19,7 +19,9 @@
package org.apache.polaris.service.it;
import io.quarkus.test.junit.QuarkusIntegrationTest;
-import org.apache.polaris.service.it.test.PolarisRestCatalogAwsIntegrationTest;
+import
org.apache.polaris.service.it.test.PolarisRestCatalogAwsIntegrationTestBase;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@QuarkusIntegrationTest
-public class RestCatalogAwsIT extends PolarisRestCatalogAwsIntegrationTest {}
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_S3_PATH", matches =
".+")
+public class RestCatalogAwsIT extends PolarisRestCatalogAwsIntegrationTestBase
{}
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
similarity index 84%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
index b7b850388..d89bbf22d 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java
@@ -19,7 +19,9 @@
package org.apache.polaris.service.it;
import io.quarkus.test.junit.QuarkusIntegrationTest;
-import
org.apache.polaris.service.it.test.PolarisRestCatalogAzureIntegrationTest;
+import
org.apache.polaris.service.it.test.PolarisRestCatalogAzureIntegrationTestBase;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@QuarkusIntegrationTest
-public class RestCatalogAzureIT extends PolarisRestCatalogAzureIntegrationTest
{}
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_AZURE_PATH", matches =
".+")
+public class RestCatalogAzureIT extends
PolarisRestCatalogAzureIntegrationTestBase {}
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
similarity index 84%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
index ad6a7fe54..80448f0c2 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java
@@ -19,7 +19,9 @@
package org.apache.polaris.service.it;
import io.quarkus.test.junit.QuarkusIntegrationTest;
-import org.apache.polaris.service.it.test.PolarisRestCatalogGcpIntegrationTest;
+import
org.apache.polaris.service.it.test.PolarisRestCatalogGcpIntegrationTestBase;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
@QuarkusIntegrationTest
-public class RestCatalogGcpIT extends PolarisRestCatalogGcpIntegrationTest {}
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_GCS_PATH", matches =
".+")
+public class RestCatalogGcpIT extends PolarisRestCatalogGcpIntegrationTestBase
{}
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
similarity index 91%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
index b6e742227..de6cfb387 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java
@@ -24,9 +24,11 @@ import java.nio.file.Path;
import org.apache.iceberg.view.ViewCatalogTests;
import
org.apache.polaris.service.it.test.PolarisRestCatalogViewAwsIntegrationTest;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.io.TempDir;
@QuarkusIntegrationTest
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_S3_PATH", matches =
".+")
public class RestCatalogViewAwsIT extends
PolarisRestCatalogViewAwsIntegrationTest {
@BeforeEach
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
similarity index 91%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
index b2f237205..38a83c83f 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java
@@ -24,9 +24,11 @@ import java.nio.file.Path;
import org.apache.iceberg.view.ViewCatalogTests;
import
org.apache.polaris.service.it.test.PolarisRestCatalogViewAzureIntegrationTest;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.io.TempDir;
@QuarkusIntegrationTest
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_AZURE_PATH", matches =
".+")
public class RestCatalogViewAzureIT extends
PolarisRestCatalogViewAzureIntegrationTest {
@BeforeEach
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
similarity index 91%
rename from
runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
rename to
runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
index 1f816312c..1eca3ecc3 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
+++
b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java
@@ -24,9 +24,11 @@ import java.nio.file.Path;
import org.apache.iceberg.view.ViewCatalogTests;
import
org.apache.polaris.service.it.test.PolarisRestCatalogViewGcpIntegrationTest;
import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.io.TempDir;
@QuarkusIntegrationTest
+@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_GCS_PATH", matches =
".+")
public class RestCatalogViewGcpIT extends
PolarisRestCatalogViewGcpIntegrationTest {
@BeforeEach
diff --git
a/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager
b/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager
new file mode 100644
index 000000000..07ecf4b1f
--- /dev/null
+++
b/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+org.apache.polaris.service.it.ServerManager
\ No newline at end of file
diff --git
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java
b/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java
index e430d8ec6..d7f764dd5 100644
---
a/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java
+++
b/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java
@@ -69,11 +69,6 @@ public class PolarisRestCatalogMinIOIT extends
PolarisRestCatalogIntegrationBase
endpoint = minioAccess.s3endpoint();
}
- @Override
- protected boolean shouldSkip() {
- return false;
- }
-
@Override
protected void initializeClientFileIO(FileIO fileIO) {
fileIO.initialize(