# ==================================================================================================================== # # Authors: # # Patrick Lehmann # # Unai Martinez-Corral # # # # ==================================================================================================================== # # Copyright 2020-2024 The pyTooling Authors # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # # You may obtain a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # # # # SPDX-License-Identifier: Apache-2.0 # # ==================================================================================================================== # name: Publish Unit Test Results on: workflow_call: inputs: ubuntu_image_version: description: 'Ubuntu image version.' required: false default: '24.04' type: string merged_junit_artifact: description: 'Name of the merged JUnit Test Summary artifact.' required: false default: '' type: string additional_merge_args: description: 'Additional merging arguments.' required: false default: '"--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit"' type: string publish: description: 'Publish test report summary via Dorny Test-Reporter' required: false default: true type: boolean report_title: description: 'Title of the summary report in the pipeline''s sidebar' required: false default: 'Unit Test Results' type: string jobs: PublishTestResults: name: 📊 Publish Test Results runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" if: always() steps: - name: ⏬ Checkout repository uses: actions/checkout@v4 - name: Download Artifacts uses: actions/download-artifact@v4 with: path: artifacts - name: 🔧 Install pyEDAA.Reports (JUunit Parser and Merger) run: | python -m pip install --disable-pip-version-check --break-system-packages -U pyEDAA.Reports - name: Move JUnit files and collect them all to junit/ run: | mkdir -p junit ls -lAh artifacts/*/*.xml find artifacts/ -type f -path "*TestReportSummary*.xml" -exec sh -c 'cp -v $0 "junit/$(basename $(dirname $0)).$(basename $0)"' {} ';' tree -a junit - name: 🔁 Merge JUnit Unit Test Summaries run: | pyedaa-reports -v unittest "--merge=pyTest-JUnit:junit/*.xml" ${{ inputs.additional_merge_args }} "--output=pyTest-JUnit:Unittesting.xml" echo "cat Unittesting.xml" cat Unittesting.xml - name: 📊 Publish Unit Test Results uses: dorny/test-reporter@v1 if: inputs.publish && inputs.report_title != '' with: name: ${{ inputs.report_title }} path: Unittesting.xml reporter: java-junit - name: 📤 Upload merged 'JUnit Test Summary' artifact if: inputs.merged_junit_artifact != '' uses: actions/upload-artifact@v4 with: name: ${{ inputs.merged_junit_artifact }} path: Unittesting.xml if-no-files-found: error retention-days: 1