Skip to content

Commit

Permalink
Introduce SQL Dialect and Test Framework
Browse files Browse the repository at this point in the history
  • Loading branch information
gs-ssh16 committed Oct 22, 2024
1 parent 2c326f2 commit 926c3a7
Show file tree
Hide file tree
Showing 39 changed files with 3,871 additions and 19 deletions.
77 changes: 77 additions & 0 deletions .github/workflows/sdt-duckdb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Copyright 2024 Goldman Sachs
#
# Licensed 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.

name: (SDT) DuckDB SQL Dialect Tests

env:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PROJECT_DIR: legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-sqlDialectTranslation-pure

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 11
distribution: zulu
server-id: ossrh
server-username: CI_DEPLOY_USERNAME
server-password: CI_DEPLOY_PASSWORD

- name: Check Java version
run: java -version

- name: Checkout repo
uses: actions/checkout@v4

- name: Build core_external_store_relational_sql_dialect_translation_duckdb
run: |
mvn -B -e -pl ${{ env.PROJECT_DIR }} clean install -am -DskipTests=true
- name: Run Test_Postgres_SDT
run: |
mvn -B -e -pl ${{ env.PROJECT_DIR }} test -Dtest=Test_DuckDB_SDT
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: ${{ env.PROJECT_DIR }}/target/surefire-reports/*.xml

- name: Publish Test Results
uses: mikepenz/action-junit-report@v4
if: always()
with:
report_paths: '${{ env.PROJECT_DIR }}/target/surefire-reports/*.xml'
fail_on_failure: true
summary: true
detailed_summary: true
include_passed: true
check_name: DuckDB SDT Report
job_name: DuckDB SDT Report

- name: Upload CI Event
if: always()
uses: actions/upload-artifact@v4
with:
name: event-file
path: ${{ github.event_path }}
77 changes: 77 additions & 0 deletions .github/workflows/sdt-postgres.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Copyright 2024 Goldman Sachs
#
# Licensed 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.

name: (SDT) Postgres SQL Dialect Tests

env:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PROJECT_DIR: legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/legend-engine-xt-relationalStore-SDT-pure

on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 11
distribution: zulu
server-id: ossrh
server-username: CI_DEPLOY_USERNAME
server-password: CI_DEPLOY_PASSWORD

- name: Check Java version
run: java -version

- name: Checkout repo
uses: actions/checkout@v4

- name: Build core_external_store_relational_sdt
run: |
mvn -B -e -pl ${{ env.PROJECT_DIR }} clean install -am -DskipTests=true
- name: Run Test_Postgres_SDT
run: |
mvn -B -e -pl ${{ env.PROJECT_DIR }} test -Dtest=Test_Postgres_SDT
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: ${{ env.PROJECT_DIR }}/target/surefire-reports/*.xml

- name: Publish Test Results
uses: mikepenz/action-junit-report@v4
if: always()
with:
report_paths: '${{ env.PROJECT_DIR }}/target/surefire-reports/*.xml'
fail_on_failure: true
summary: true
detailed_summary: true
include_passed: true
check_name: Postgres SDT Report
job_name: Postgres SDT Report

- name: Upload CI Event
if: always()
uses: actions/upload-artifact@v4
with:
name: event-file
path: ${{ github.event_path }}
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,11 @@
<artifactId>legend-engine-xt-relationalStore-sqlDialectTranslation-pure</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-duckdb-sqlDialectTranslation-pure</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Relational -->

<!-- Service Store -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,7 @@ protected Iterable<String> getExpectedCodeRepositories()
.with("core_nonrelational_mongodb_java_platform_binding")
.with("core_external_store_relational_sql_planning")
.with("core_external_store_relational_sql_dialect_translation")
.with("core_external_store_relational_sql_dialect_translation_duckdb")
;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,11 @@
<scope>runtime</scope>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-SDT-pure</artifactId>
<scope>runtime</scope>
</dependency>
<!-- Engine extensions -->

<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ protected MutableList<RepositoryCodeStorage> buildRepositories(SourceLocationCon
.with(this.buildCore("legend-engine-xts-dataquality/legend-engine-xt-dataquality-pure", "dataquality"))
.with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/legend-engine-xt-relationalStore-sqlPlanning-pure", "external-store-relational-sql-planning"))
.with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/legend-engine-xt-relationalStore-sqlDialectTranslation-pure", "external-store-relational-sql-dialect-translation"))
.with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/legend-engine-xt-relationalStore-SDT-pure", "external-store-relational-sdt"))
.with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-sqlDialectTranslation-pure", "external-store-relational-sql-dialect-translation-duckdb"))
;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2024 Goldman Sachs
Licensed 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.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-duckdb</artifactId>
<version>4.63.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>legend-engine-xt-relationalStore-duckdb-sqlDialectTranslation-pure</artifactId>
<packaging>jar</packaging>
<name>Legend Engine - XT - Relational Store - DuckDB - SQL Dialect Translation - Pure</name>

<build>
<plugins>
<plugin>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-maven-generation-par</artifactId>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources</sourceDirectory>
<purePlatformVersion>${legend.pure.version}</purePlatformVersion>
<repositories>
<repository>core_external_store_relational_sql_dialect_translation_duckdb</repository>
</repositories>
<extraRepositories>
<extraRepository>${project.basedir}/src/main/resources/core_external_store_relational_sql_dialect_translation_duckdb.definition.json</extraRepository>
</extraRepositories>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>build-pure-jar</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-sqlDialectTranslation-pure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-m2-dsl-diagram-grammar</artifactId>
<version>${legend.pure.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-maven-generation-java</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>build-pure-compiled-jar</goal>
</goals>
<configuration>
<generateSources>true</generateSources>
<preventJavaCompilation>true</preventJavaCompilation>
<generationType>modular</generationType>
<useSingleDir>true</useSingleDir>
<repositories>
<repository>core_external_store_relational_sql_dialect_translation_duckdb</repository>
</repositories>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-sqlDialectTranslation-pure</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-m2-dsl-diagram-grammar</artifactId>
<version>${legend.pure.version}</version>
</dependency>
</dependencies>
</plugin>

<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<excludes>
<exclude>**/Test_DuckDB_SDT*.java</exclude>
<exclude>**/SdtTestSuiteBuilder*.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- PURE -->
<dependency>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-m4</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-m3-core</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.pure</groupId>
<artifactId>legend-pure-runtime-java-engine-compiled</artifactId>
</dependency>
<!-- PURE -->

<!-- ENGINE -->
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-pure-platform-java</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-pure-code-compiled-core</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-postgresSqlModel-pure</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-sqlDialectTranslation-pure</artifactId>
</dependency>
<!-- ENGINE -->

<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections-api</artifactId>
</dependency>

<!-- TEST -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-SDT-pure</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-duckdb-PCT</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.finos.legend.engine</groupId>
<artifactId>legend-engine-xt-relationalStore-SDT-pure</artifactId>
<type>test-jar</type>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<!-- TEST -->
</dependencies>
</project>
Loading

0 comments on commit 926c3a7

Please sign in to comment.