Skip to content

Merge pull request #8 from xiaoyumuxi/ci/redesign-pipeline #21

Merge pull request #8 from xiaoyumuxi/ci/redesign-pipeline

Merge pull request #8 from xiaoyumuxi/ci/redesign-pipeline #21

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Set up JDK 17
uses: actions/setup-java@v6
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Build all modules
run: mvn -B -ntp clean package -DskipTests -Drpc.registry=local
unit-tests:
name: Unit Tests & Coverage
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Set up JDK 17
uses: actions/setup-java@v6
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run core and transport unit tests
run: mvn -B -ntp test -pl rpc-core,rpc-transport-netty -am -Drpc.registry=local
- name: Upload unit test and coverage reports
if: always()
uses: actions/upload-artifact@v7
with:
name: unit-test-reports
retention-days: 7
if-no-files-found: warn
path: |
**/target/surefire-reports/
**/target/site/jacoco/
rpc-integration:
name: RPC Integration
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Set up JDK 17
uses: actions/setup-java@v6
with:
java-version: '17'
distribution: 'temurin'
cache: 'maven'
- name: Run local-registry Netty end-to-end test
run: >-
mvn -B -ntp test
-pl rpc-consumer -am
-Dtest=FullIntegrationTest
-Dsurefire.failIfNoSpecifiedTests=false
-Drpc.registry=local
-Drpc.protocol=netty
- name: Upload integration test reports
if: always()
uses: actions/upload-artifact@v7
with:
name: rpc-integration-reports
retention-days: 7
if-no-files-found: warn
path: '**/target/surefire-reports/'
ci-gate:
name: CI Gate
if: always()
needs: [ build, unit-tests, rpc-integration ]
runs-on: ubuntu-24.04
timeout-minutes: 2
steps:
- name: Verify required checks
shell: bash
run: |
test "${{ needs.build.result }}" = "success"
test "${{ needs.unit-tests.result }}" = "success"
test "${{ needs.rpc-integration.result }}" = "success"