From e7e709b09f8069f4a8d0676eb061cd6605f4f32b Mon Sep 17 00:00:00 2001 From: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> Date: Fri, 25 Oct 2024 16:05:38 +0530 Subject: [PATCH] Modularize SDT workflow (#3206) --- .github/workflows/actions/sdt-test/action.yml | 78 +++++++++++++++++++ .github/workflows/sdt-duckdb.yml | 55 ++----------- .github/workflows/sdt-postgres.yml | 55 ++----------- 3 files changed, 92 insertions(+), 96 deletions(-) create mode 100644 .github/workflows/actions/sdt-test/action.yml diff --git a/.github/workflows/actions/sdt-test/action.yml b/.github/workflows/actions/sdt-test/action.yml new file mode 100644 index 00000000000..d5ff399383e --- /dev/null +++ b/.github/workflows/actions/sdt-test/action.yml @@ -0,0 +1,78 @@ +# 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 Test + +description: SDT Test + +inputs: + check-name: + description: 'Job/Check Name' + required: true + project-dir: + description: 'Project directory' + required: true + test-name: + description: 'SDT Test Name' + required: true + +runs: + using: "composite" + 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 + shell: bash + + - name: Build repository + run: mvn -B -e -pl ${{ inputs.project-dir }} clean install -am -DskipTests=true + shell: bash + + - name: Run SDT Test + run: mvn -B -e -pl ${{ inputs.project-dir }} test -Dtest=${{ inputs.test-name }} + shell: bash + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v4 + with: + name: test-results + path: ${{ inputs.project-dir }}/target/surefire-reports/*.xml + + - name: Publish Test Results + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: '${{ inputs.project-dir }}/target/surefire-reports/*.xml' + fail_on_failure: true + summary: true + detailed_summary: true + include_passed: true + check_name: ${{ inputs.check-name }} + job_name: ${{ inputs.check-name }} + + - name: Upload CI Event + if: always() + uses: actions/upload-artifact@v4 + with: + name: event-file + path: ${{ github.event_path }} diff --git a/.github/workflows/sdt-duckdb.yml b/.github/workflows/sdt-duckdb.yml index 4b815c46032..3f2ce13ee08 100644 --- a/.github/workflows/sdt-duckdb.yml +++ b/.github/workflows/sdt-duckdb.yml @@ -14,64 +14,23 @@ name: (SDT) DuckDB SQL Dialect Tests +on: [push, pull_request] + 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 SDT Test - 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 + - name: SDT Test + uses: ./.github/workflows/actions/sdt-test with: - name: event-file - path: ${{ github.event_path }} + check-name: DuckDB SDT Report + project-dir: legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-sqlDialectTranslation-pure + test-name: Test_DuckDB_SDT diff --git a/.github/workflows/sdt-postgres.yml b/.github/workflows/sdt-postgres.yml index 762c487edb7..3afc0892fd8 100644 --- a/.github/workflows/sdt-postgres.yml +++ b/.github/workflows/sdt-postgres.yml @@ -14,64 +14,23 @@ name: (SDT) Postgres SQL Dialect Tests +on: [push, pull_request] + 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 SDT Test - 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 + - name: SDT Test + uses: ./.github/workflows/actions/sdt-test with: - name: event-file - path: ${{ github.event_path }} + check-name: Postgres SDT Report + project-dir: legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/legend-engine-xt-relationalStore-SDT-pure + test-name: Test_Postgres_SDT