diff --git a/.github/workflows/spring-docker-tests.yml b/.github/workflows/spring-docker-tests.yml
new file mode 100644
index 000000000000..9b57a5b9c0c3
--- /dev/null
+++ b/.github/workflows/spring-docker-tests.yml
@@ -0,0 +1,54 @@
+name: Spring Docker Tests
+
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/spring-docker-tests.yml'
+ - 'pom.xml'
+ - 'sdk/spring/**'
+ - 'sdk/parents/**'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ spring-docker-tests:
+ runs-on: ubuntu-24.04
+ timeout-minutes: 45
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 17
+ uses: actions/setup-java@v4
+ with:
+ distribution: temurin
+ java-version: '17'
+ cache: maven
+
+ - name: Verify Docker
+ run: |
+ docker version
+ docker info
+
+ - name: Build spring docker test dependencies
+ run: >
+ mvn -f sdk/spring/pom.xml
+ -pl spring-cloud-azure-testcontainers,spring-cloud-azure-docker-compose
+ -am
+ install
+ -DskipTests
+ -DskipITs
+ -DfailIfNoTests=false
+
+ - name: Run spring docker-tagged tests
+ run: >
+ mvn -f sdk/spring/pom.xml
+ -pl spring-cloud-azure-testcontainers,spring-cloud-azure-docker-compose
+ test
+ -Pdocker-tests
+ -DfailIfNoTests=false
+ -DskipITs
+ -DskipTests=false
\ No newline at end of file
diff --git a/sdk/spring/spring-cloud-azure-docker-compose/pom.xml b/sdk/spring/spring-cloud-azure-docker-compose/pom.xml
index 343791baf6e8..71a771c93a7c 100644
--- a/sdk/spring/spring-cloud-azure-docker-compose/pom.xml
+++ b/sdk/spring/spring-cloud-azure-docker-compose/pom.xml
@@ -38,6 +38,8 @@
true
17
17
+
+ docker
https://azuresdkartifacts.blob.core.windows.net/azure-sdk-for-java
@@ -196,6 +198,15 @@
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.5
+
+ ${surefire.test.groups}
+ ${surefire.excluded.test.groups}
+
+
org.apache.maven.plugins
maven-jar-plugin
@@ -278,6 +289,13 @@
+
+ docker-tests
+
+ docker
+
+
+
below-java-17
diff --git a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
index 3f1d51308a7d..454c8659c1f4 100644
--- a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java
@@ -12,6 +12,7 @@
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler;
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusRecordMessageListener;
import com.azure.spring.messaging.servicebus.core.ServiceBusTemplate;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -42,6 +43,7 @@
"spring.cloud.azure.servicebus.processor.entity-name=queue.1",
"spring.cloud.azure.servicebus.processor.entity-type=queue"
})
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class ServiceBusDockerComposeConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/hubs/EventHubsDockerComposeConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/hubs/EventHubsDockerComposeConnectionDetailsFactoryTests.java
index 1369301024c1..9d38f7ebb433 100644
--- a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/hubs/EventHubsDockerComposeConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/hubs/EventHubsDockerComposeConnectionDetailsFactoryTests.java
@@ -8,6 +8,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.AzureEventHubsAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.properties.AzureEventHubsConnectionDetails;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -30,6 +31,7 @@
"spring.cloud.azure.eventhubs.event-hub-name=eh1",
"spring.cloud.azure.eventhubs.producer.event-hub-name=eh1"
})
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class EventHubsDockerComposeConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageBlobDockerComposeConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageBlobDockerComposeConnectionDetailsFactoryTests.java
index 861401e1957d..310d8e701a20 100644
--- a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageBlobDockerComposeConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageBlobDockerComposeConnectionDetailsFactoryTests.java
@@ -6,6 +6,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobResourceAutoConfiguration;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -28,6 +29,7 @@
"spring.docker.compose.file=classpath:com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/storage-compose.yaml",
"spring.docker.compose.stop.command=down"
})
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class StorageBlobDockerComposeConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageQueueDockerComposeConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageQueueDockerComposeConnectionDetailsFactoryTests.java
index 1e01ed16562b..9287a16a9774 100644
--- a/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageQueueDockerComposeConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageQueueDockerComposeConnectionDetailsFactoryTests.java
@@ -6,6 +6,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.queue.AzureStorageQueueAutoConfiguration;
import com.azure.storage.queue.QueueClient;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -22,6 +23,7 @@
"spring.docker.compose.stop.command=down",
"spring.cloud.azure.storage.queue.queue-name=devstoreaccount1/tc-queue"
})
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class StorageQueueDockerComposeConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/pom.xml b/sdk/spring/spring-cloud-azure-testcontainers/pom.xml
index b09c9483eeaf..32c6e2517241 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/pom.xml
+++ b/sdk/spring/spring-cloud-azure-testcontainers/pom.xml
@@ -38,6 +38,8 @@
true
17
17
+
+ docker
https://azuresdkartifacts.blob.core.windows.net/azure-sdk-for-java
@@ -204,6 +206,15 @@
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.5
+
+ ${surefire.test.groups}
+ ${surefire.excluded.test.groups}
+
+
org.apache.maven.plugins
maven-jar-plugin
@@ -286,6 +297,13 @@
+
+ docker-tests
+
+ docker
+
+
+
below-java-17
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
index 5a3cd1e173ab..5f4a543a58ed 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java
@@ -12,6 +12,7 @@
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler;
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusRecordMessageListener;
import com.azure.spring.messaging.servicebus.core.ServiceBusTemplate;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -41,6 +42,7 @@
@TestPropertySource(properties = { "spring.cloud.azure.servicebus.entity-name=queue.1",
"spring.cloud.azure.servicebus.entity-type=queue" })
@Testcontainers
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class ServiceBusContainerConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/cosmos/CosmosContainerConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/cosmos/CosmosContainerConnectionDetailsFactoryTests.java
index bc938ddd50e2..b97dd6b1c9c7 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/cosmos/CosmosContainerConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/cosmos/CosmosContainerConnectionDetailsFactoryTests.java
@@ -10,6 +10,7 @@
import com.azure.spring.data.cosmos.repository.CosmosRepository;
import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories;
import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -41,6 +42,7 @@
@SpringJUnitConfig
@Testcontainers
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class CosmosContainerConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/hubs/EventHubsContainerConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/hubs/EventHubsContainerConnectionDetailsFactoryTests.java
index 84c05c2bc6a2..ed2fb7f1556e 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/hubs/EventHubsContainerConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/hubs/EventHubsContainerConnectionDetailsFactoryTests.java
@@ -8,6 +8,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.AzureEventHubsAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.properties.AzureEventHubsConnectionDetails;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -35,6 +36,7 @@
"spring.cloud.azure.eventhubs.event-hub-name=eh1"
})
@Testcontainers
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class EventHubsContainerConnectionDetailsFactoryTests {
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageBlobContainerConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageBlobContainerConnectionDetailsFactoryTests.java
index abcf84118d7f..f0032a109708 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageBlobContainerConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageBlobContainerConnectionDetailsFactoryTests.java
@@ -6,6 +6,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobResourceAutoConfiguration;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -29,6 +30,7 @@
@SpringJUnitConfig
@Testcontainers
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class StorageBlobContainerConnectionDetailsFactoryTests {
@Container
diff --git a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageQueueContainerConnectionDetailsFactoryTests.java b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageQueueContainerConnectionDetailsFactoryTests.java
index ebc0783b5fcf..1ded16f94cdb 100644
--- a/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageQueueContainerConnectionDetailsFactoryTests.java
+++ b/sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/storage/StorageQueueContainerConnectionDetailsFactoryTests.java
@@ -6,6 +6,7 @@
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
import com.azure.spring.cloud.autoconfigure.implementation.storage.queue.AzureStorageQueueAutoConfiguration;
import com.azure.storage.queue.QueueClient;
+import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
@@ -24,6 +25,7 @@
@SpringJUnitConfig
@TestPropertySource(properties = "spring.cloud.azure.storage.queue.queue-name=devstoreaccount1/tc-queue")
@Testcontainers
+@Tag("docker")
@EnabledOnOs(OS.LINUX)
class StorageQueueContainerConnectionDetailsFactoryTests {