Skip to content

Test (Direct)

Test (Direct) #122

Workflow file for this run

name: Test (Direct)
on:
pull_request:
push:
workflow_dispatch:
jobs:
dupe_check:
name: Check for Duplicate Workflow Run
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/[email protected]
with:
concurrent_skipping: same_content
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'
build:
name: Integration Tests
needs:
- dupe_check
if: needs.dupe_check.outputs.should_skip != 'true'
runs-on: ubuntu-latest
strategy:
matrix:
beam-version: [ "", "2.20.0", "2.25.0" ]
experiments: [ "", "use_sdf_read", "use_deprecated_read" ]
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Cache local Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-test-direct-${{ matrix.beam-version }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-test-direct-${{ matrix.beam-version }}-
- name: Setup JDK 8
uses: actions/setup-java@v2
with:
distribution: zulu
java-version: 8
- name: Install Test Support
run: mvn clean install -f solace-integration-test-support/ -DskipTests
- name: Build and Run Tests
run: >-
mvn clean verify jacoco:report
${{ matrix.beam-version && format('-Dbeam.version={0}', matrix.beam-version) || '' }}
"-DbeamTestPipelineOptions=[\"--experiments=${{ matrix.experiments }}\"]"
- name: Upload Test Artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: Test Results (${{ matrix.beam-version }}, ${{ matrix.experiments }})
path: |
**/target/failsafe-reports/*.xml
**/target/surefire-reports/*.xml
**/target/jacoco.exec
**/target/site/jacoco/
- name: Publish Test Coverage Results
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository && !matrix.beam-version && !matrix.experiments # Only report this once
uses: madrapps/[email protected]
with:
path: beam-sdks-java-io-solace/target/site/jacoco/jacoco.xml
token: ${{ secrets.GITHUB_TOKEN }}
publish-test-results:
name: Publish Test Results
needs:
- build
if: success() || failure()
runs-on: ubuntu-latest
steps:
- name: Download Test Results
uses: actions/download-artifact@v2
with:
path: test-artifacts
- name: Publish Unit Test Results
uses: EnricoMi/publish-unit-test-result-action@v1
continue-on-error: true
with:
check_name: Unit Test Results (Direct)
comment_mode: create new
fail_on: nothing
hide_comments: orphaned commits
files: |
test-artifacts/**/failsafe-reports/**/*.xml
!test-artifacts/**/failsafe-reports/**/failsafe-summary.xml
test-artifacts/**/surefire-reports/**/*.xml