Skip to content

Commit 3237ed4

Browse files
authored
Segregate Docker-dependent tests to GitHub Actions workflow (#49481)
1 parent 400a05e commit 3237ed4

12 files changed

Lines changed: 121 additions & 0 deletions

File tree

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Spring Docker Tests
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- '.github/workflows/spring-docker-tests.yml'
7+
- 'sdk/spring/**'
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
spring-docker-tests:
15+
runs-on: ubuntu-24.04
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v6
20+
21+
- name: Set up JDK 17
22+
uses: actions/setup-java@v5
23+
with:
24+
distribution: temurin
25+
java-version: '17'
26+
cache: maven
27+
28+
- name: Verify Docker
29+
run: |
30+
docker version
31+
docker info
32+
33+
- name: Build spring docker test dependencies
34+
run: >
35+
mvn -f sdk/spring/pom.xml
36+
-pl spring-cloud-azure-testcontainers,spring-cloud-azure-docker-compose
37+
-am
38+
install
39+
-Dcheckstyle.skip=true
40+
-Dcodesnippet.skip=true
41+
-Denforcer.skip=true
42+
-Djacoco.skip=true
43+
-Dmaven.javadoc.skip=true
44+
-Drevapi.skip=true
45+
-DskipTests
46+
-Dspotbugs.skip=true
47+
-Pdev
48+
-T 4
49+
-ntp
50+
-DfailIfNoTests=false
51+
52+
- name: Run spring docker-tagged tests
53+
run: >
54+
mvn -f sdk/spring/pom.xml
55+
-pl spring-cloud-azure-testcontainers,spring-cloud-azure-docker-compose
56+
test
57+
-Pdocker-tests
58+
-Dcheckstyle.skip=true
59+
-Dcodesnippet.skip=true
60+
-Denforcer.skip=true
61+
-Djacoco.skip=true
62+
-Dmaven.javadoc.skip=true
63+
-Dspotbugs.skip=true
64+
-T 4
65+
-ntp

sdk/spring/spring-cloud-azure-docker-compose/pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
<jacoco.skip>true</jacoco.skip>
3939
<maven.compiler.source>17</maven.compiler.source>
4040
<maven.compiler.target>17</maven.compiler.target>
41+
<surefire.test.groups/>
42+
<surefire.excluded.test.groups>docker</surefire.excluded.test.groups>
4143
<legal>
4244
<![CDATA[[INFO] Any downloads listed may be third party software. Microsoft grants you no rights for third party software.]]></legal>
4345
<site.url>https://azuresdkartifacts.blob.core.windows.net/azure-sdk-for-java</site.url>
@@ -196,6 +198,15 @@
196198
</rules>
197199
</configuration>
198200
</plugin>
201+
<plugin>
202+
<groupId>org.apache.maven.plugins</groupId>
203+
<artifactId>maven-surefire-plugin</artifactId>
204+
<version>3.5.6</version> <!-- {x-version-update;springboot4_org.apache.maven.plugins:maven-surefire-plugin;external_dependency} -->
205+
<configuration>
206+
<groups>${surefire.test.groups}</groups>
207+
<excludedGroups>${surefire.excluded.test.groups}</excludedGroups>
208+
</configuration>
209+
</plugin>
199210
<plugin>
200211
<groupId>org.apache.maven.plugins</groupId>
201212
<artifactId>maven-jar-plugin</artifactId>
@@ -278,6 +289,14 @@
278289
</build>
279290

280291
<profiles>
292+
<profile>
293+
<id>docker-tests</id>
294+
<properties>
295+
<parallelizeTests>same_thread</parallelizeTests>
296+
<surefire.test.groups>docker</surefire.test.groups>
297+
<surefire.excluded.test.groups/>
298+
</properties>
299+
</profile>
281300
<!-- Library cannot build for Java 16 and below -->
282301
<profile>
283302
<id>below-java-17</id>

sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/bus/ServiceBusDockerComposeConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler;
1313
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusRecordMessageListener;
1414
import com.azure.spring.messaging.servicebus.core.ServiceBusTemplate;
15+
import org.junit.jupiter.api.Tag;
1516
import org.junit.jupiter.api.Test;
1617
import org.junit.jupiter.api.condition.EnabledOnOs;
1718
import org.junit.jupiter.api.condition.OS;
@@ -42,6 +43,7 @@
4243
"spring.cloud.azure.servicebus.processor.entity-name=queue.1",
4344
"spring.cloud.azure.servicebus.processor.entity-type=queue"
4445
})
46+
@Tag("docker")
4547
@EnabledOnOs(OS.LINUX)
4648
class ServiceBusDockerComposeConnectionDetailsFactoryTests {
4749

sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/hubs/EventHubsDockerComposeConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
99
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.AzureEventHubsAutoConfiguration;
1010
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.properties.AzureEventHubsConnectionDetails;
11+
import org.junit.jupiter.api.Tag;
1112
import org.junit.jupiter.api.Test;
1213
import org.junit.jupiter.api.condition.EnabledOnOs;
1314
import org.junit.jupiter.api.condition.OS;
@@ -30,6 +31,7 @@
3031
"spring.cloud.azure.eventhubs.event-hub-name=eh1",
3132
"spring.cloud.azure.eventhubs.producer.event-hub-name=eh1"
3233
})
34+
@Tag("docker")
3335
@EnabledOnOs(OS.LINUX)
3436
class EventHubsDockerComposeConnectionDetailsFactoryTests {
3537

sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageBlobDockerComposeConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
77
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobAutoConfiguration;
88
import com.azure.spring.cloud.autoconfigure.implementation.storage.blob.AzureStorageBlobResourceAutoConfiguration;
9+
import org.junit.jupiter.api.Tag;
910
import org.junit.jupiter.api.Test;
1011
import org.junit.jupiter.api.condition.EnabledOnOs;
1112
import org.junit.jupiter.api.condition.OS;
@@ -28,6 +29,7 @@
2829
"spring.docker.compose.file=classpath:com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/storage-compose.yaml",
2930
"spring.docker.compose.stop.command=down"
3031
})
32+
@Tag("docker")
3133
@EnabledOnOs(OS.LINUX)
3234
class StorageBlobDockerComposeConnectionDetailsFactoryTests {
3335

sdk/spring/spring-cloud-azure-docker-compose/src/test/java/com/azure/spring/cloud/docker/compose/implementation/service/connection/storage/StorageQueueDockerComposeConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
77
import com.azure.spring.cloud.autoconfigure.implementation.storage.queue.AzureStorageQueueAutoConfiguration;
88
import com.azure.storage.queue.QueueClient;
9+
import org.junit.jupiter.api.Tag;
910
import org.junit.jupiter.api.Test;
1011
import org.junit.jupiter.api.condition.EnabledOnOs;
1112
import org.junit.jupiter.api.condition.OS;
@@ -22,6 +23,7 @@
2223
"spring.docker.compose.stop.command=down",
2324
"spring.cloud.azure.storage.queue.queue-name=devstoreaccount1/tc-queue"
2425
})
26+
@Tag("docker")
2527
@EnabledOnOs(OS.LINUX)
2628
class StorageQueueDockerComposeConnectionDetailsFactoryTests {
2729

sdk/spring/spring-cloud-azure-testcontainers/pom.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
<jacoco.skip>true</jacoco.skip>
3939
<maven.compiler.source>17</maven.compiler.source>
4040
<maven.compiler.target>17</maven.compiler.target>
41+
<surefire.test.groups/>
42+
<surefire.excluded.test.groups>docker</surefire.excluded.test.groups>
4143
<legal>
4244
<![CDATA[[INFO] Any downloads listed may be third party software. Microsoft grants you no rights for third party software.]]></legal>
4345
<site.url>https://azuresdkartifacts.blob.core.windows.net/azure-sdk-for-java</site.url>
@@ -204,6 +206,15 @@
204206
</rules>
205207
</configuration>
206208
</plugin>
209+
<plugin>
210+
<groupId>org.apache.maven.plugins</groupId>
211+
<artifactId>maven-surefire-plugin</artifactId>
212+
<version>3.5.6</version> <!-- {x-version-update;springboot4_org.apache.maven.plugins:maven-surefire-plugin;external_dependency} -->
213+
<configuration>
214+
<groups>${surefire.test.groups}</groups>
215+
<excludedGroups>${surefire.excluded.test.groups}</excludedGroups>
216+
</configuration>
217+
</plugin>
207218
<plugin>
208219
<groupId>org.apache.maven.plugins</groupId>
209220
<artifactId>maven-jar-plugin</artifactId>
@@ -286,6 +297,14 @@
286297
</build>
287298

288299
<profiles>
300+
<profile>
301+
<id>docker-tests</id>
302+
<properties>
303+
<parallelizeTests>same_thread</parallelizeTests>
304+
<surefire.test.groups>docker</surefire.test.groups>
305+
<surefire.excluded.test.groups/>
306+
</properties>
307+
</profile>
289308
<!-- Library cannot build for Java 16 and below -->
290309
<profile>
291310
<id>below-java-17</id>

sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/bus/ServiceBusContainerConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusErrorHandler;
1313
import com.azure.spring.cloud.service.servicebus.consumer.ServiceBusRecordMessageListener;
1414
import com.azure.spring.messaging.servicebus.core.ServiceBusTemplate;
15+
import org.junit.jupiter.api.Tag;
1516
import org.junit.jupiter.api.Test;
1617
import org.junit.jupiter.api.condition.EnabledOnOs;
1718
import org.junit.jupiter.api.condition.OS;
@@ -41,6 +42,7 @@
4142
@TestPropertySource(properties = { "spring.cloud.azure.servicebus.entity-name=queue.1",
4243
"spring.cloud.azure.servicebus.entity-type=queue" })
4344
@Testcontainers
45+
@Tag("docker")
4446
@EnabledOnOs(OS.LINUX)
4547
class ServiceBusContainerConnectionDetailsFactoryTests {
4648

sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/cosmos/CosmosContainerConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.azure.spring.data.cosmos.repository.CosmosRepository;
1111
import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories;
1212
import org.junit.jupiter.api.BeforeAll;
13+
import org.junit.jupiter.api.Tag;
1314
import org.junit.jupiter.api.Test;
1415
import org.junit.jupiter.api.condition.EnabledOnOs;
1516
import org.junit.jupiter.api.condition.OS;
@@ -41,6 +42,7 @@
4142

4243
@SpringJUnitConfig
4344
@Testcontainers
45+
@Tag("docker")
4446
@EnabledOnOs(OS.LINUX)
4547
class CosmosContainerConnectionDetailsFactoryTests {
4648

sdk/spring/spring-cloud-azure-testcontainers/src/test/java/com/azure/spring/cloud/testcontainers/implementation/service/connection/hubs/EventHubsContainerConnectionDetailsFactoryTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.azure.spring.cloud.autoconfigure.implementation.context.AzureGlobalPropertiesAutoConfiguration;
99
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.AzureEventHubsAutoConfiguration;
1010
import com.azure.spring.cloud.autoconfigure.implementation.eventhubs.properties.AzureEventHubsConnectionDetails;
11+
import org.junit.jupiter.api.Tag;
1112
import org.junit.jupiter.api.Test;
1213
import org.junit.jupiter.api.condition.EnabledOnOs;
1314
import org.junit.jupiter.api.condition.OS;
@@ -35,6 +36,7 @@
3536
"spring.cloud.azure.eventhubs.event-hub-name=eh1"
3637
})
3738
@Testcontainers
39+
@Tag("docker")
3840
@EnabledOnOs(OS.LINUX)
3941
class EventHubsContainerConnectionDetailsFactoryTests {
4042

0 commit comments

Comments
 (0)