Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/actions/upload-actual/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Upload Actual Results
description: Upload test artifacts and diffs when an integration test fails

inputs:
name:
description: Name used for the uploaded artifacts. We upload actual_name and diff_name.
required: true
it-dir:
description: Path to integration tests.
required: true
expected-dir:
description: Relative path to expected test results.
required: true
actual-dir:
description: Relative path to actual test results.
required: true

env:
RETENTION_DAYS: 7

runs:
using: composite
steps:
- name: Upload Actual Results
uses: actions/upload-artifact@v4
with:
name: actual_${{ inputs.name }}
path: ${{ inputs.it-dir }}/${{ inputs.actual-dir }}
retention-days: ${{ env.RETENTION_DAYS }}

- name: Generate Diff Report
shell: bash
env:
IT_DIR: ${{ inputs.it-dir }}
EXPECTED_DIR: ${{ inputs.expected-dir }}
ACTUAL_DIR: ${{ inputs.actual-dir }}
NAME: ${{ inputs.name }}
run: |
cd "${IT_DIR}"
mkdir -p target
diff --unified --recursive --strip-trailing-cr "${EXPECTED_DIR}" "${ACTUAL_DIR}" > "target/test.diff" || true
npx diff2html-cli --input file --style side --file "target/diff_${NAME}.html" -- "target/test.diff"

- name: Upload Diff Report
uses: actions/upload-artifact@v4
with:
name: diff_${{ inputs.name }}
path: ${{ inputs.it-dir }}/target/diff_${{ inputs.name }}.html
retention-days: ${{ env.RETENTION_DAYS }}
16 changes: 16 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ jobs:
run: |
cd its/ruling
mvn package --batch-mode "-Pit-ruling,${{ matrix.item.profile }}" -Dsonar.runtimeVersion=LATEST_RELEASE -Dmaven.test.redirectTestOutputToFile=false -B -e -V -Dparallel=methods -DuseUnlimitedThreads=true
- name: Upload Actual Results On Failure
if: failure()
uses: ./.github/actions/upload-actual
with:
name: ${{ matrix.item.runner }}_${{ matrix.item.profile }}
it-dir: its/ruling
expected-dir: src/test/resources
actual-dir: target/actual

plugin-qa:
strategy:
Expand Down Expand Up @@ -323,6 +331,14 @@ jobs:
-Dmaven.test.redirectTestOutputToFile=false
-Dparallel=methods
-DuseUnlimitedThreads=true
- name: Upload Actual Results On Failure
if: failure()
uses: ./.github/actions/upload-actual
with:
name: autoscan
it-dir: its/autoscan
expected-dir: src/test/resources/autoscan/diffs
actual-dir: target/actual/autoscan-diffs

qa-os-win:
name: Build and Unit Test on Windows
Expand Down
Loading