"Created by snbot" #3617
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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@v3 | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
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@v3 | |
- 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@v3 | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
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@v3 | |
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@v3 | |
- name: Cache Maven packages | |
uses: actions/cache@v3 | |
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@v3 | |
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) | |