diff --git a/.github/workflows/CompletePipeline.yml b/.github/workflows/CompletePipeline.yml index 267e3b7..8ce2cde 100644 --- a/.github/workflows/CompletePipeline.yml +++ b/.github/workflows/CompletePipeline.yml @@ -206,10 +206,12 @@ jobs: PublishTestResults: uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev needs: + - ConfigParams - UnitTestingParams - UnitTesting with: additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit"' + merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }} merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} # VerifyDocs: diff --git a/.github/workflows/ExtractConfiguration.yml b/.github/workflows/ExtractConfiguration.yml index 781cbff..d5d7758 100644 --- a/.github/workflows/ExtractConfiguration.yml +++ b/.github/workflows/ExtractConfiguration.yml @@ -68,6 +68,15 @@ on: unittest_report_xml: description: "" value: ${{ jobs.Extract.outputs.unittest_report_xml }} + unittest_merged_report_xml_directory: + description: "" + value: ${{ jobs.Extract.outputs.unittest_merged_report_xml_directory }} + unittest_merged_report_xml_filename: + description: "" + value: ${{ jobs.Extract.outputs.unittest_merged_report_xml_filename }} + unittest_merged_report_xml: + description: "" + value: ${{ jobs.Extract.outputs.unittest_merged_report_xml }} coverage_report_html_directory: description: "" value: ${{ jobs.Extract.outputs.coverage_report_html_directory }} @@ -95,19 +104,22 @@ jobs: name: 📓 Extract configurations from pyproject.toml runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" outputs: - package_fullname: ${{ steps.getPackageName.outputs.package_fullname }} - package_directory: ${{ steps.getPackageName.outputs.package_directory }} - mypy_prepare_command: ${{ steps.getPackageName.outputs.mypy_prepare_command }} - unittest_report_xml_directory: ${{ steps.getVariables.outputs.unittest_report_xml_directory }} - unittest_report_xml_filename: ${{ steps.getVariables.outputs.unittest_report_xml_filename }} - unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }} - coverage_report_html_directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }} - coverage_report_xml_directory: ${{ steps.getVariables.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: ${{ steps.getVariables.outputs.coverage_report_xml_filename }} - coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }} - coverage_report_json_directory: ${{ steps.getVariables.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ steps.getVariables.outputs.coverage_report_json_filename }} - coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }} + package_fullname: ${{ steps.getPackageName.outputs.package_fullname }} + package_directory: ${{ steps.getPackageName.outputs.package_directory }} + mypy_prepare_command: ${{ steps.getPackageName.outputs.mypy_prepare_command }} + unittest_report_xml_directory: ${{ steps.getVariables.outputs.unittest_report_xml_directory }} + unittest_report_xml_filename: ${{ steps.getVariables.outputs.unittest_report_xml_filename }} + unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }} + unittest_merged_report_xml_directory: ${{ steps.getVariables.outputs.unittest_merged_report_xml_directory }} + unittest_merged_report_xml_filename: ${{ steps.getVariables.outputs.unittest_merged_report_xml_filename }} + unittest_merged_report_xml: ${{ steps.getVariables.outputs.unittest_merged_report_xml }} + coverage_report_html_directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }} + coverage_report_xml_directory: ${{ steps.getVariables.outputs.coverage_report_xml_directory }} + coverage_report_xml_filename: ${{ steps.getVariables.outputs.coverage_report_xml_filename }} + coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }} + coverage_report_json_directory: ${{ steps.getVariables.outputs.coverage_report_json_directory }} + coverage_report_json_filename: ${{ steps.getVariables.outputs.coverage_report_json_filename }} + coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }} steps: - name: ⏬ Checkout repository @@ -178,6 +190,7 @@ jobs: pyProjectSettings = tomli_load(file) unittestXMLFile = Path(pyProjectSettings["tool"]["pytest"]["junit_xml"]) + mergedUnittestXMLFile = Path(pyProjectSettings["tool"]["pyedaa-reports"]["junit_xml"]) coverageHTMLDirectory = Path(pyProjectSettings["tool"]["coverage"]["html"]["directory"]) coverageXMLFile = Path(pyProjectSettings["tool"]["coverage"]["xml"]["output"]) coverageJSONFile= Path(pyProjectSettings["tool"]["coverage"]["json"]["output"]) @@ -209,6 +222,9 @@ jobs: unittest_report_xml_directory={unittestXMLFile.parent.as_posix()} unittest_report_xml_filename={unittestXMLFile.name} unittest_report_xml={unittestXMLFile.as_posix()} + unittest_merged_report_xml_directory={mergedUnittestXMLFile.parent.as_posix()} + unittest_merged_report_xml_filename={mergedUnittestXMLFile.name} + unittest_merged_report_xml={mergedUnittestXMLFile.as_posix()} coverage_report_html_directory={coverageHTMLDirectory.as_posix()} coverage_report_xml_directory={coverageXMLFile.parent.as_posix()} coverage_report_xml_filename={coverageXMLFile.name} @@ -218,4 +234,4 @@ jobs: coverage_report_json={coverageJSONFile.as_posix()} """)) - print(f"DEBUG:\n unittest xml: {unittestXMLFile}\n coverage html: {coverageHTMLDirectory}\n coverage xml: {coverageXMLFile}\n coverage json: {coverageJSONFile}") + print(f"DEBUG:\n unittest xml: {unittestXMLFile}\n merged unittest xml: {mergedUnittestXMLFile}\n coverage html: {coverageHTMLDirectory}\n coverage xml: {coverageXMLFile}\n coverage json: {coverageJSONFile}") diff --git a/.github/workflows/PublishTestResults.yml b/.github/workflows/PublishTestResults.yml index 1545601..576a5fa 100644 --- a/.github/workflows/PublishTestResults.yml +++ b/.github/workflows/PublishTestResults.yml @@ -34,6 +34,11 @@ on: required: false default: '*-UnitTestReportSummary-XML-*' type: string + merged_junit_filename: + description: 'Filename of the merged JUnit Test Summary.' + required: false + default: 'Unittesting.xml' + type: string merged_junit_artifact: description: 'Name of the merged JUnit Test Summary artifact.' required: false @@ -87,16 +92,16 @@ jobs: - 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" - printf "%s\n" "cat Unittesting.xml" - cat Unittesting.xml + pyedaa-reports -v unittest "--merge=pyTest-JUnit:junit/*.xml" ${{ inputs.additional_merge_args }} "--output=pyTest-JUnit:${{ inputs.merged_junit_filename }}" + printf "%s\n" "cat ${{ inputs.merged_junit_filename }}" + cat ${{ inputs.merged_junit_filename }} - name: 📊 Publish Unit Test Results uses: dorny/test-reporter@v1 if: inputs.publish && inputs.report_title != '' with: name: ${{ inputs.report_title }} - path: Unittesting.xml + path: ${{ inputs.merged_junit_filename }} reporter: java-junit - name: 📤 Upload merged 'JUnit Test Summary' artifact @@ -104,6 +109,7 @@ jobs: if: inputs.merged_junit_artifact != '' with: name: ${{ inputs.merged_junit_artifact }} - path: Unittesting.xml + path: ${{ inputs.merged_junit_filename }} if-no-files-found: error retention-days: 1 + investigate: true diff --git a/.github/workflows/SphinxDocumentation.yml b/.github/workflows/SphinxDocumentation.yml index d5dfb5f..b1d9d74 100644 --- a/.github/workflows/SphinxDocumentation.yml +++ b/.github/workflows/SphinxDocumentation.yml @@ -105,6 +105,7 @@ jobs: with: name: ${{ inputs.unittest_xml_artifact }} path: ${{ inputs.unittest_xml_directory }} + investigate: true - name: 📥 Download artifacts '${{ inputs.coverage_json_artifact }}' from 'PublishCoverageResults' job uses: pyTooling/download-artifact@v4 diff --git a/pyproject.toml b/pyproject.toml index 0145a0a..cac642a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "setuptools ~= 76.0", + "setuptools ~= 77.0", "wheel ~= 0.45", "pyTooling ~= 8.3" ] @@ -21,7 +21,10 @@ namespace_packages = true html_report = "report/typing" [tool.pytest] -junit_xml = "report/unit/TestReportSummary.xml" +junit_xml = "report/unit/UnittestReportSummary.xml" + +[tool.pyedaa-reports] +junit_xml = "report/unit/unittest.xml" [tool.pytest.ini_options] addopts = "--tb=native"