diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml
index 6a68f395e83..edef19e55b6 100644
--- a/.github/workflows/maven-build.yml
+++ b/.github/workflows/maven-build.yml
@@ -9,7 +9,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Maven CI
+name: Maven MySQL Tests CI
on:
push:
@@ -115,13 +115,13 @@ jobs:
if: ${{ github.event_name == 'pull_request_target' }}
run: |
git fetch --no-tags https://github.com/open-metadata/OpenMetadata.git +refs/heads/main:refs/remotes/origin/main
- mvn -Dsonar.login=${{ secrets.SONAR_TOKEN }} \
+ mvn -pl :openmetadata-service -Dsonar.login=${{ secrets.SONAR_TOKEN }} \
-Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \
-Dsonar.pullrequest.branch=${{ github.head_ref }} \
-Dsonar.pullrequest.base=main \
-Dsonar.pullrequest.github.repository=OpenMetadata \
-Dsonar.scm.revision=${{ github.event.pull_request.head.sha }} \
- -Dsonar.pullrequest.provider=github clean install
+ -Dsonar.pullrequest.provider=github clean test
- name: Build with Maven
env:
diff --git a/.github/workflows/maven-psotgres-tests-build.yml b/.github/workflows/maven-psotgres-tests-build.yml
new file mode 100644
index 00000000000..da6f90009cf
--- /dev/null
+++ b/.github/workflows/maven-psotgres-tests-build.yml
@@ -0,0 +1,144 @@
+# Copyright 2021 Collate
+# 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: Maven Postgres Tests CI
+
+on:
+ push:
+ branches:
+ - main
+ - '0.[0-9]+.[0-9]+'
+ paths:
+ - "openmetadata-service/**"
+ - "openmetadata-ui/**"
+ - "openmetadata-spec/src/main/resources/json/schema/**"
+ - "openmetadata-dist/**"
+ - "openmetadata-clients/**"
+ - "common/**"
+ - "pom.xml"
+ - "yarn.lock"
+ - "Makefile"
+ - "bootstrap/**"
+ pull_request_target:
+ types: [labeled, opened, synchronize, reopened]
+ paths:
+ - "openmetadata-service/**"
+ - "openmetadata-ui/**"
+ - "openmetadata-spec/src/main/resources/json/schema/**"
+ - "openmetadata-dist/**"
+ - "openmetadata-clients/**"
+ - "common/**"
+ - "pom.xml"
+ - "yarn.lock"
+ - "Makefile"
+ - "bootstrap/**"
+
+permissions:
+ contents: read
+ checks: write
+
+concurrency:
+ group: maven-build-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+jobs:
+ test:
+ runs-on: ${{matrix.os}}
+ strategy:
+ matrix:
+ os:
+ - ubuntu-latest
+ node-version:
+ - 16.x
+ steps:
+ - name: Wait for the labeler
+ uses: lewagon/wait-on-check-action@0179dfc359f90a703c41240506f998ee1603f9ea #v1.0.0
+ if: ${{ github.event_name == 'pull_request_target' }}
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ check-name: Team Label
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ wait-interval: 90
+
+ - name: Verify PR labels
+ uses: jesusvasquez333/verify-pr-label-action@v1.4.0
+ if: ${{ github.event_name == 'pull_request_target' }}
+ with:
+ github-token: '${{ secrets.GITHUB_TOKEN }}'
+ valid-labels: 'safe to test'
+ pull-request-number: '${{ github.event.pull_request.number }}'
+ disable-reviews: true # To not auto approve changes
+
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+
+ - name: Cache Maven dependencies
+ id: cache-output
+ uses: actions/cache@v3
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ ${{ runner.os }}-maven-
+
+ - name: Set up JDK 11
+ if: steps.cache-output.outputs.exit-code == 0
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'adopt'
+
+ - name: Install Ubuntu dependencies
+ if: steps.cache-output.outputs.exit-code == 0
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y unixodbc-dev python3-venv librdkafka-dev gcc libsasl2-dev build-essential libssl-dev libffi-dev \
+ librdkafka-dev unixodbc-dev libevent-dev jq
+
+ - name: Setup Test Containers Properties
+ run: |
+ sudo make install_antlr_cli
+ echo 'testcontainers.reuse.enable=true' >> $HOME/.testcontainers.properties
+
+ - name: Build PR with Maven
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ if: ${{ github.event_name == 'pull_request_target' }}
+ run: |
+ git fetch --no-tags https://github.com/open-metadata/OpenMetadata.git +refs/heads/main:refs/remotes/origin/main
+ mvn -pl :openmetadata-service -Dsonar.login=${{ secrets.SONAR_TOKEN }} \
+ -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \
+ -Dsonar.pullrequest.branch=${{ github.head_ref }} \
+ -Dsonar.pullrequest.base=main \
+ -Dsonar.pullrequest.github.repository=OpenMetadata \
+ -Dsonar.scm.revision=${{ github.event.pull_request.head.sha }} \
+ -Dsonar.pullrequest.provider=github :openmetadata-service -Dprofile=postgres-tests clean test
+
+ - name: Build with Maven
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ if: ${{ github.event_name == 'push' }}
+ run: mvn clean test
+
+ - name: Clean Up
+ run: |
+ cd ./docker/development
+ docker compose down --remove-orphans
+ sudo rm -rf ${PWD}/docker-volume
+
+ - name: Publish Test Report
+ if: ${{ always() }}
+ uses: scacap/action-surefire-report@v1
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ fail_on_test_failures: true
+ report_paths: 'openmetadata-service/target/surefire-reports/TEST-*.xml'
diff --git a/openmetadata-service/pom.xml b/openmetadata-service/pom.xml
index 3a359a0bce1..21ef8578a7d 100644
--- a/openmetadata-service/pom.xml
+++ b/openmetadata-service/pom.xml
@@ -539,6 +539,117 @@
+
+ postgres-tests
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire.version}
+
+ false
+ classes
+ 1C
+ -Xmx512m
+
+
+
+ default-test
+
+ true
+
+ docker.elastic.co/elasticsearch/elasticsearch:7.16.3
+ opensearchproject/opensearch:1.3.0
+ false
+
+
+
+
+
+ test
+
+ postgres-integration-tests
+ test
+
+
+ **/*ResourceTest.java
+
+
+ org.testcontainers.containers.PostgreSQLContainer
+ postgres:12.10
+
+
+
+
+
+
+
+
+
+ mysql-tests
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven-surefire.version}
+
+ false
+ classes
+ 1C
+ -Xmx512m
+
+
+
+ default-test
+
+ true
+
+ docker.elastic.co/elasticsearch/elasticsearch:7.16.3
+ opensearchproject/opensearch:1.3.0
+ false
+
+
+
+
+
+ test
+
+ unit-tests
+
+ **/*Test.java
+ **/*ResourceTest.java
+
+ org.testcontainers.containers.MySQLContainer
+ mysql:8
+
+
+
+
+
+ test
+
+ mysql-integration-tests
+ test
+
+
+ **/*ResourceTest.java
+
+
+ org.testcontainers.containers.MySQLContainer
+ mysql:8
+
+
+
+
+
+
+
+
@@ -627,77 +738,6 @@
org.apache.maven.plugins
maven-source-plugin
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven-surefire.version}
-
- false
- classes
- 1
- 2C
- -Xmx512m
-
-
-
- default-test
-
- true
-
- docker.elastic.co/elasticsearch/elasticsearch:7.16.3
- opensearchproject/opensearch:1.3.0
- false
-
-
-
-
-
- test
-
- unit-tests
-
- **/*Test.java
- **/*ResourceTest.java
-
- org.testcontainers.containers.MySQLContainer
- mysql:8
-
-
-
-
-
- test
-
- postgres-integration-tests
- test
-
-
- **/*ResourceTest.java
-
-
- org.testcontainers.containers.PostgreSQLContainer
- postgres:15.3
-
-
-
-
-
- test
-
- mysql-integration-tests
- test
-
-
- **/*ResourceTest.java
-
-
- org.testcontainers.containers.MySQLContainer
- mysql:8
-
-
-
-
-