separate mysql/postgres tests (#12703)

* separate mysql/postgres tests

* separate mysql/postgres tests

* separate mysql/postgres tests

* separate mysql/postgres tests

* Update pom.xml
This commit is contained in:
Sriharsha Chintalapani 2023-08-02 05:59:09 -07:00 committed by GitHub
parent 521711940e
commit ef6e281f05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 258 additions and 74 deletions

View File

@ -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:

View File

@ -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'

View File

@ -539,6 +539,117 @@
</plugins>
</build>
</profile>
<profile>
<id>postgres-tests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire.version}</version>
<configuration>
<reuseForks>false</reuseForks>
<parallel>classes</parallel>
<forkCount>1C</forkCount>
<argLine>-Xmx512m</argLine>
</configuration>
<executions>
<execution>
<id>default-test</id>
<configuration>
<skip>true</skip>
<systemPropertyVariables>
<elasticSearchContainerClassName>docker.elastic.co/elasticsearch/elasticsearch:7.16.3</elasticSearchContainerClassName>
<openSearchContainerClassName>opensearchproject/opensearch:1.3.0</openSearchContainerClassName>
<runESTestCases>false</runESTestCases>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>postgres-integration-tests</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*ResourceTest.java</include>
</includes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.PostgreSQLContainer</jdbcContainerClassName>
<jdbcContainerImage>postgres:12.10</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>mysql-tests</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire.version}</version>
<configuration>
<reuseForks>false</reuseForks>
<parallel>classes</parallel>
<forkCount>1C</forkCount>
<argLine>-Xmx512m</argLine>
</configuration>
<executions>
<execution>
<id>default-test</id>
<configuration>
<skip>true</skip>
<systemPropertyVariables>
<elasticSearchContainerClassName>docker.elastic.co/elasticsearch/elasticsearch:7.16.3</elasticSearchContainerClassName>
<openSearchContainerClassName>opensearchproject/opensearch:1.3.0</openSearchContainerClassName>
<runESTestCases>false</runESTestCases>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>unit-tests</id>
<configuration>
<includes>**/*Test.java</includes>
<excludes>**/*ResourceTest.java</excludes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.MySQLContainer</jdbcContainerClassName>
<jdbcContainerImage>mysql:8</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>mysql-integration-tests</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*ResourceTest.java</include>
</includes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.MySQLContainer</jdbcContainerClassName>
<jdbcContainerImage>mysql:8</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
@ -627,77 +738,6 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire.version}</version>
<configuration>
<reuseForks>false</reuseForks>
<parallel>classes</parallel>
<threadCount>1</threadCount>
<forkCount>2C</forkCount>
<argLine>-Xmx512m</argLine>
</configuration>
<executions>
<execution>
<id>default-test</id>
<configuration>
<skip>true</skip>
<systemPropertyVariables>
<elasticSearchContainerClassName>docker.elastic.co/elasticsearch/elasticsearch:7.16.3</elasticSearchContainerClassName>
<openSearchContainerClassName>opensearchproject/opensearch:1.3.0</openSearchContainerClassName>
<runESTestCases>false</runESTestCases>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>unit-tests</id>
<configuration>
<includes>**/*Test.java</includes>
<excludes>**/*ResourceTest.java</excludes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.MySQLContainer</jdbcContainerClassName>
<jdbcContainerImage>mysql:8</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>postgres-integration-tests</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*ResourceTest.java</include>
</includes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.PostgreSQLContainer</jdbcContainerClassName>
<jdbcContainerImage>postgres:15.3</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
<execution>
<goals>
<goal>test</goal>
</goals>
<id>mysql-integration-tests</id>
<phase>test</phase>
<configuration>
<includes>
<include>**/*ResourceTest.java</include>
</includes>
<systemPropertyVariables>
<jdbcContainerClassName>org.testcontainers.containers.MySQLContainer</jdbcContainerClassName>
<jdbcContainerImage>mysql:8</jdbcContainerImage>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>