Skip to content

Commit 2220cb4

Browse files
authored
MINOR - Fix RDF CI & repository cleanup (#24918)
* MINOR - Fix RDF CI & repository cleanup * MINOR - Fix RDF CI & repository cleanup * fix * MINOR - Fix RDF CI & repository cleanup * MINOR - Fix RDF CI & repository cleanup * MINOR - Fix RDF CI & repository cleanup * fix
1 parent 9c80936 commit 2220cb4

5 files changed

Lines changed: 63 additions & 85 deletions

File tree

.github/workflows/maven-postgres-rdf-tests-build.yml

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ permissions:
4343
contents: read
4444
checks: write
4545

46-
concurrency:
46+
concurrency:
4747
group: maven-build-postgres-rdf-${{ github.head_ref || github.run_id }}
4848
cancel-in-progress: true
4949

@@ -83,7 +83,7 @@ jobs:
8383
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
8484
restore-keys: |
8585
${{ runner.os }}-maven-
86-
86+
8787
- name: Set up JDK 21
8888
if: steps.cache-output.outputs.exit-code == 0
8989
uses: actions/setup-java@v4
@@ -99,32 +99,21 @@ jobs:
9999
librdkafka-dev unixodbc-dev libevent-dev jq
100100
sudo make install_antlr_cli
101101
102-
- name: Start PostgreSQL with RDF enabled
103-
run: |
104-
docker compose -f ./docker/development/docker-compose-postgres-fuseki.yml up -d postgresql fuseki
105-
# Wait for PostgreSQL to be ready
106-
sleep 30
107-
# Verify PostgreSQL is running
108-
docker compose ps
109-
110102
- name: Build OpenMetadata dependencies
111103
env:
112104
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
113105
run: |
114-
# Build spec module first
115-
mvn clean install -DskipTests -pl openmetadata-spec
116-
# Build common module
117-
mvn clean install -DskipTests -pl common
106+
mvn clean install -DskipTests
118107
119-
- name: Run RDF Integration Tests
108+
- name: Run Postgres RDF Test Suite
120109
env:
121110
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
122111
OM_RDF_ENABLED: true
123112
OM_RDF_STORAGE_TYPE: IN_MEMORY
124113
OM_RDF_BASE_URI: https://open-metadata.org/
125114
run: |
126-
mvn -Ppostgres-rdf-tests clean test -pl openmetadata-service \
127-
-Dtest=org.openmetadata.service.resources.rdf.RdfResourceTest \
115+
# Run the full openmetadata-service test suite with the RDF profile enabled
116+
mvn -Ppostgres-rdf-tests test -pl openmetadata-service \
128117
-DfailIfNoTests=false
129118
130119
- name: Upload RDF Test Logs
@@ -149,17 +138,17 @@ jobs:
149138
with:
150139
github_token: ${{ secrets.GITHUB_TOKEN }}
151140
fail_on_test_failures: true
152-
report_paths: 'openmetadata-service/target/surefire-reports/TEST-org.openmetadata.service.resources.rdf.*.xml'
153-
141+
report_paths: 'openmetadata-service/target/surefire-reports/TEST-*.xml'
142+
154143
- name: Generate Job Summary
155144
if: always()
156145
run: |
157146
echo "## RDF Integration Tests Summary" >> $GITHUB_STEP_SUMMARY
158147
echo "" >> $GITHUB_STEP_SUMMARY
159-
if [ -f "openmetadata-service/target/surefire-reports/TEST-org.openmetadata.service.resources.rdf.RdfResourceTest.xml" ]; then
160-
echo "✅ RDF tests completed" >> $GITHUB_STEP_SUMMARY
148+
if ls openmetadata-service/target/surefire-reports/TEST-*.xml >/dev/null 2>&1; then
149+
echo "✅ Test suite completed (RDF profile)" >> $GITHUB_STEP_SUMMARY
161150
else
162-
echo "❌ RDF tests failed or did not run" >> $GITHUB_STEP_SUMMARY
151+
echo "❌ Tests failed or did not run" >> $GITHUB_STEP_SUMMARY
163152
fi
164153
echo "" >> $GITHUB_STEP_SUMMARY
165154
echo "### Test Configuration" >> $GITHUB_STEP_SUMMARY

openmetadata-service/pom.xml

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,44 +1282,44 @@
12821282
</build>
12831283
</profile>
12841284
<profile>
1285-
<id>postgres-rdf-tests</id>
1286-
<build>
1287-
<plugins>
1288-
<plugin>
1289-
<groupId>org.apache.maven.plugins</groupId>
1290-
<artifactId>maven-surefire-plugin</artifactId>
1291-
<version>${maven-surefire.version}</version>
1292-
<configuration>
1293-
<reuseForks>false</reuseForks>
1294-
<parallel>classes</parallel>
1295-
<forkCount>1C</forkCount>
1296-
<argLine>-Xmx2G</argLine>
1297-
<systemPropertyVariables>
1298-
<jdbcContainerClassName>org.testcontainers.containers.PostgreSQLContainer</jdbcContainerClassName>
1299-
<jdbcContainerImage>postgres:15</jdbcContainerImage>
1300-
<elasticSearchContainerClassName>docker.elastic.co/elasticsearch/elasticsearch:8.11.4</elasticSearchContainerClassName>
1301-
<openSearchContainerClassName>opensearchproject/opensearch:2.7.0</openSearchContainerClassName>
1302-
<runESTestCases>false</runESTestCases>
1303-
<enableRdf>true</enableRdf>
1304-
<rdfContainerImage>stain/jena-fuseki:latest</rdfContainerImage>
1305-
<api.version>1.44</api.version>
1306-
</systemPropertyVariables>
1307-
</configuration>
1308-
<executions>
1309-
<execution>
1310-
<id>postgres-rdf-integration-tests</id>
1311-
<phase>test</phase>
1312-
<configuration>
1313-
<includes>
1314-
<include>**/*Test.java</include>
1315-
<include>**/*ResourceTest.java</include>
1316-
</includes>
1317-
</configuration>
1318-
</execution>
1319-
</executions>
1320-
</plugin>
1321-
</plugins>
1322-
</build>
1285+
<id>postgres-rdf-tests</id>
1286+
<build>
1287+
<plugins>
1288+
<plugin>
1289+
<groupId>org.apache.maven.plugins</groupId>
1290+
<artifactId>maven-surefire-plugin</artifactId>
1291+
<version>${maven-surefire.version}</version>
1292+
<configuration>
1293+
<reuseForks>false</reuseForks>
1294+
<parallel>classes</parallel>
1295+
<forkCount>1C</forkCount>
1296+
<argLine>-Xmx2G</argLine>
1297+
<systemPropertyVariables>
1298+
<jdbcContainerClassName>org.testcontainers.containers.PostgreSQLContainer</jdbcContainerClassName>
1299+
<jdbcContainerImage>postgres:15</jdbcContainerImage>
1300+
<elasticSearchContainerClassName>docker.elastic.co/elasticsearch/elasticsearch:8.11.4</elasticSearchContainerClassName>
1301+
<openSearchContainerClassName>opensearchproject/opensearch:2.7.0</openSearchContainerClassName>
1302+
<runESTestCases>false</runESTestCases>
1303+
<enableRdf>true</enableRdf>
1304+
<rdfContainerImage>stain/jena-fuseki:latest</rdfContainerImage>
1305+
<api.version>1.44</api.version>
1306+
</systemPropertyVariables>
1307+
</configuration>
1308+
<executions>
1309+
<execution>
1310+
<id>postgres-rdf-integration-tests</id>
1311+
<phase>test</phase>
1312+
<configuration>
1313+
<includes>
1314+
<include>**/*Test.java</include>
1315+
<include>**/*ResourceTest.java</include>
1316+
</includes>
1317+
</configuration>
1318+
</execution>
1319+
</executions>
1320+
</plugin>
1321+
</plugins>
1322+
</build>
13231323
</profile>
13241324
<profile>
13251325
<id>mysql-redis-tests</id>

openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ public String executeSparqlQueryWithInference(
620620
};
621621

622622
if (level == org.openmetadata.service.rdf.reasoning.InferenceEngine.ReasoningLevel.NONE) {
623-
return executeSparqlQuery(query, format);
623+
return executeSparqlQueryDirect(query, format);
624624
}
625625

626626
// For inference queries, we need to work with the full model

openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
9595
public abstract class OpenMetadataApplicationTest {
9696
protected static Boolean runWithOpensearch = false;
97+
protected static Boolean runWithRdf = false;
9798

9899
protected static final String CONFIG_PATH =
99100
ResourceHelpers.resourceFilePath("openmetadata-secure-test.yaml");
@@ -552,13 +553,10 @@ private static void setupRedisIfEnabled() {
552553
}
553554

554555
private static void setupRdfIfEnabled() {
555-
String enableRdf = System.getProperty("enableRdf");
556-
String rdfContainerImage = System.getProperty("rdfContainerImage");
557-
if ("true".equals(enableRdf)) {
558-
LOG.info("RDF is enabled for tests. Starting Fuseki container...");
559-
if (CommonUtil.nullOrEmpty(rdfContainerImage)) {
560-
rdfContainerImage = "stain/jena-fuseki:latest";
561-
}
556+
if (Boolean.TRUE.equals(runWithRdf) || "true".equals(System.getProperty("enableRdf"))) {
557+
String rdfContainerImage = System.getProperty("rdfContainerImage", "stain/jena-fuseki:5.0.0");
558+
LOG.info(
559+
"RDF is enabled for tests. Starting Fuseki container with image: {}", rdfContainerImage);
562560

563561
try {
564562
RDF_CONTAINER =
@@ -588,6 +586,7 @@ private static void setupRdfIfEnabled() {
588586
configOverrides.add(ConfigOverride.config("rdf.username", "admin"));
589587
configOverrides.add(ConfigOverride.config("rdf.password", "test-admin"));
590588
configOverrides.add(ConfigOverride.config("rdf.baseUri", "https://open-metadata.org/"));
589+
configOverrides.add(ConfigOverride.config("rdf.dataset", "openmetadata"));
591590

592591
LOG.info("RDF configuration overrides added");
593592
} catch (Exception e) {
@@ -596,7 +595,8 @@ private static void setupRdfIfEnabled() {
596595
configOverrides.add(ConfigOverride.config("rdf.enabled", "false"));
597596
}
598597
} else {
599-
LOG.info("RDF not enabled for tests (enableRdf={})", enableRdf);
598+
LOG.info("RDF not enabled for tests (runWithRdf={})", runWithRdf);
599+
configOverrides.add(ConfigOverride.config("rdf.enabled", "false"));
600600
}
601601
}
602602

openmetadata-service/src/test/java/org/openmetadata/service/resources/rdf/RdfResourceTest.java

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,25 @@
2525
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2626
public class RdfResourceTest extends OpenMetadataApplicationTest {
2727

28+
static {
29+
// Enable RDF for these tests
30+
runWithRdf = true;
31+
}
32+
2833
// RDF type for Table entities (from RdfUtils.java)
2934
private static final String TABLE_RDF_TYPE = "dcat:Dataset";
3035

3136
private TableResourceTest tableResourceTest;
3237

3338
@BeforeAll
3439
public void setup(TestInfo test) throws URISyntaxException, IOException {
35-
// Skip setup if RDF is not enabled
36-
if (!"true".equals(System.getProperty("enableRdf"))) {
37-
return;
38-
}
3940
// Initialize the TableResourceTest helper for creating entities
4041
tableResourceTest = new TableResourceTest();
4142
tableResourceTest.setup(test);
4243
}
4344

4445
@Test
4546
void testEntityStoredInRdf(TestInfo test) throws Exception {
46-
if (!"true".equals(System.getProperty("enableRdf"))) {
47-
return; // Skip if RDF is not enabled
48-
}
49-
5047
// Create a table
5148
CreateTable createTable =
5249
tableResourceTest.createRequest(test.getDisplayName() + "_rdf_storage");
@@ -58,10 +55,6 @@ void testEntityStoredInRdf(TestInfo test) throws Exception {
5855

5956
@Test
6057
void testMultipleEntitiesStoredInRdf(TestInfo test) throws Exception {
61-
if (!"true".equals(System.getProperty("enableRdf"))) {
62-
return; // Skip if RDF is not enabled
63-
}
64-
6558
// Create multiple tables
6659
CreateTable createTable1 =
6760
tableResourceTest.createRequest(test.getDisplayName() + "_rdf_multi1");
@@ -78,10 +71,6 @@ void testMultipleEntitiesStoredInRdf(TestInfo test) throws Exception {
7871

7972
@Test
8073
void testEntityDeleteFromRdf(TestInfo test) throws Exception {
81-
if (!"true".equals(System.getProperty("enableRdf"))) {
82-
return; // Skip if RDF is not enabled
83-
}
84-
8574
// Create a table
8675
CreateTable createTable =
8776
tableResourceTest.createRequest(test.getDisplayName() + "_rdf_delete");

0 commit comments

Comments
 (0)