forked from hugegraph/hugegraph
109 lines
3.5 KiB
YAML
109 lines
3.5 KiB
YAML
name: hugegraph-ci
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- 'release-*'
|
|
- 'test-*'
|
|
pull_request:
|
|
branches:
|
|
- '**'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
TRAVIS_DIR: hugegraph-dist/src/assembly/travis
|
|
REPORT_DIR: target/site/jacoco
|
|
BACKEND: ${{ matrix.BACKEND }}
|
|
TRIGGER_BRANCH_NAME: ${{ github.ref_name }}
|
|
HEAD_BRANCH_NAME: ${{ github.head_ref }}
|
|
BASE_BRANCH_NAME: ${{ github.base_ref }}
|
|
TARGET_BRANCH_NAME: ${{ github.base_ref != '' && github.base_ref || github.ref_name }}
|
|
RELEASE_BRANCH: ${{ startsWith(github.ref_name, 'release-') || startsWith(github.ref_name, 'test-') || startsWith(github.base_ref, 'release-') }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
BACKEND: [memory, cassandra, scylladb, hbase, rocksdb, mysql, postgresql]
|
|
JAVA_VERSION: ['8', '11']
|
|
|
|
steps:
|
|
- name: Install JDK ${{ matrix.JAVA_VERSION }}
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
java-version: ${{ matrix.JAVA_VERSION }}
|
|
distribution: 'zulu'
|
|
|
|
- name: Cache Maven packages
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ~/.m2
|
|
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: ${{ runner.os }}-m2
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 2
|
|
|
|
- name: Compile
|
|
run: |
|
|
mvn clean compile -U -Dmaven.javadoc.skip=true | grep -v "Downloading\|Downloaded"
|
|
|
|
- name: Install JDK 8
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
java-version: '8'
|
|
distribution: 'zulu'
|
|
|
|
- name: Prepare env and service
|
|
run: |
|
|
$TRAVIS_DIR/install-backend.sh $BACKEND
|
|
|
|
- name: Install JDK ${{ matrix.JAVA_VERSION }}
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
java-version: ${{ matrix.JAVA_VERSION }}
|
|
distribution: 'zulu'
|
|
|
|
# - name: Init MySQL Env
|
|
# if: ${{ env.BACKEND == 'mysql' }}
|
|
# uses: mirromutth/mysql-action@v1.1
|
|
# with:
|
|
# host port: 3306 # Optional, default value is 3306. The port of host
|
|
# container port: 3306 # Optional, default value is 3306. The port of container
|
|
# character set server: 'utf8mb4' # Optional, default value is 'utf8mb4'. The '--character-set-server' option for mysqld
|
|
# collation server: 'utf8mb4_general_ci' # Optional, default value is 'utf8mb4_general_ci'. The '--collation-server' option for mysqld
|
|
# mysql version: '5.7' # Optional, default value is "latest". The version of the MySQL
|
|
# mysql database: 'test' # Optional, default value is "test". The specified database which will be create
|
|
# mysql root password: "******" # Required if "mysql user" is empty, default is empty. The root superuser password
|
|
|
|
- name: Run unit test
|
|
run: |
|
|
$TRAVIS_DIR/run-unit-test.sh $BACKEND
|
|
|
|
- name: Run core test
|
|
run: |
|
|
$TRAVIS_DIR/run-core-test.sh $BACKEND
|
|
|
|
- name: Run api test
|
|
run: |
|
|
$TRAVIS_DIR/run-api-test.sh $BACKEND $REPORT_DIR
|
|
|
|
- name: Run raft test
|
|
if: ${{ env.BACKEND == 'rocksdb' }}
|
|
run: |
|
|
$TRAVIS_DIR/run-api-test-for-raft.sh $BACKEND $REPORT_DIR
|
|
|
|
- name: Run TinkerPop test
|
|
if: ${{ env.RELEASE_BRANCH == 'true' }}
|
|
run: |
|
|
$TRAVIS_DIR/run-tinkerpop-test.sh $BACKEND tinkerpop
|
|
|
|
- name: Upload coverage to Codecov
|
|
uses: codecov/codecov-action@v3.0.0
|
|
with:
|
|
file: ${{ env.REPORT_DIR }}/*.xml
|