Skip to content

"Created by snbot" #3354

"Created by snbot"

"Created by snbot" #3354

Workflow file for this run

name: mop mvn build check and ut
on:
pull_request:
branches:
- branch-*
- master
paths-ignore:
- 'docs/**'
- 'README.md'
push:
branches:
- branch-*
- master
paths-ignore:
- 'docs/**'
- 'README.md'
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
- name: License check
run: mvn license:check
- name: Build with Maven skipTests
run: mvn clean install -DskipTests
- name: Style check
run: mvn checkstyle:check
# - name: Spotbugs check
# run: mvn spotbugs:check
scan:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v2
- name: Get All Tests
id: list-test
run: |
TESTS=`find tests/src/test/java/io/streamnative/pulsar/handlers/mqtt \
mqtt-impl/src/test/java/io/streamnative/pulsar/handlers/mqtt -name "*Test.java" | \
awk -F "/" '{ print $NF }' | \
awk -F "." '{ print $1 }' | \
jq -R -s -c 'split("\n") | map(select(. != ""))'`
echo "::set-output name=tests::$(echo $TESTS)"
outputs:
tests: ${{ steps.list-test.outputs.tests }}
test:
needs: [ scan, check ]
strategy:
matrix:
test: ${{ fromJson(needs.scan.outputs.tests) }}
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
- name: Build with Maven skipTests
run: mvn clean install -DskipTests
- name: Test after build
run: ./scripts/retry.sh mvn -B -ntp test -Dtest=${{ matrix.test }} -DfailIfNoTests=false
- name: Upload jacoco artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.test }}-jacoco-artifact
path: '**/*.exec'
retention-days: 2
- name: package surefire artifacts
if: failure()
run: |
rm -rf artifacts
mkdir artifacts
find . -type d -name "*surefire*" -exec cp --parents -R {} artifacts/ \;
zip -r ${{ matrix.test }}-artifacts.zip artifacts
- uses: actions/upload-artifact@master
name: upload surefire-artifacts
if: failure()
with:
name: surefire-artifacts
path: ${{ matrix.test }}-artifacts.zip
build:
needs: test
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
- name: Build with Maven skipTests
run: mvn clean install -DskipTests
- name: Download jacoco artifact
uses: actions/download-artifact@v2
with:
path: mqtt-impl/target
- name: Merge jacoco report
run: mvn jacoco:merge
- name: Generate jacoco report
run: mvn jacoco:report
- name: Upload test report
run: bash <(curl -s https://codecov.io/bash)