diff --git a/.github/workflows/CompletePipeline.yml b/.github/workflows/CompletePipeline.yml index b01a418..b1b1a4a 100644 --- a/.github/workflows/CompletePipeline.yml +++ b/.github/workflows/CompletePipeline.yml @@ -130,9 +130,6 @@ jobs: ConfigParams: uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev - with: - package_namespace: ${{ inputs.package_namespace }} - package_name: ${{ inputs.package_name }} UnitTestingParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev @@ -177,17 +174,15 @@ jobs: - UnitTestingParams with: jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} +# TODO: shouldn't this be configured by a parameter? Same as directories requirements: "-r tests/unit/requirements.txt" # pacboy: "msys/git python-lxml:p" - unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} - unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} - coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} - coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} - unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} - coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} + unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }} + coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }} + coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }} + coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }} + unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} + coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} StaticTypeCheck: uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev @@ -195,24 +190,21 @@ jobs: - ConfigParams - UnitTestingParams with: - python_version: ${{ needs.UnitTestingParams.outputs.python_version }} - junit_report_directory: ${{ needs.ConfigParams.outputs.typing_report_junit_directory }} - junit_report_file: ${{ needs.ConfigParams.outputs.typing_report_junit_file }} - junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_junit }} - cobertura_report_directory: ${{ needs.ConfigParams.outputs.typing_report_cobertura_directory }} - cobertura_report_file: ${{ needs.ConfigParams.outputs.typing_report_cobertura_file }} - cobertura_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_cobertura }} - html_report: ${{ needs.ConfigParams.outputs.typing_report_html_directory }} - html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} + python_version: ${{ needs.UnitTestingParams.outputs.python_version }} + cobertura_report: ${{ needs.ConfigParams.outputs.typing_report_cobertura }} + junit_report: ${{ needs.ConfigParams.outputs.typing_report_junit }} + html_report: ${{ needs.ConfigParams.outputs.typing_report_html }} + cobertura_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_cobertura }} + junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_junit }} + html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} DocCoverage: uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev needs: - - ConfigParams - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} - directory: ${{ needs.ConfigParams.outputs.package_directory }} + directory: ${{ needs.UnitTestingParams.outputs.package_directory }} Package: uses: pyTooling/Actions/.github/workflows/Package.yml@dev @@ -226,14 +218,13 @@ jobs: Install: uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev needs: - - ConfigParams - UnitTestingParams - InstallParams - Package with: jobs: ${{ needs.InstallParams.outputs.python_jobs }} wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} - package_name: ${{ needs.ConfigParams.outputs.package_fullname }} + package_name: ${{ needs.UnitTestingParams.outputs.package_fullname }} # AppTesting: # uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@dev @@ -258,13 +249,12 @@ jobs: # coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} # coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} # coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} - coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} - coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} - coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} - codecov: ${{ inputs.codecov }} - codacy: ${{ inputs.codacy }} + coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} + coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }} + coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} + coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }} + codecov: ${{ inputs.codecov }} + codacy: ${{ inputs.codacy }} secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }} @@ -277,8 +267,8 @@ jobs: - UnitTesting if: success() || failure() with: - testsuite-summary-name: ${{ needs.ConfigParams.outputs.package_fullname }} - merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }} + testsuite-summary-name: ${{ needs.UnitTestingParams.outputs.package_fullname }} + merged_junit_filename: ${{ fromJson(needs.ConfigParams.outputs.unittest_merged_report_xml).filename }} merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} dorny: ${{ inputs.dorny }} codecov: ${{ inputs.codecov }} @@ -303,7 +293,7 @@ jobs: if: success() || failure() with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} + coverage_report_json_directory: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).directory }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} @@ -326,7 +316,7 @@ jobs: - UnitTestingParams - Documentation with: - document: ${{ needs.ConfigParams.outputs.package_fullname }} + document: ${{ needs.UnitTestingParams.outputs.package_fullname }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }} can-fail: 'true' diff --git a/.github/workflows/ExtractConfiguration.yml b/.github/workflows/ExtractConfiguration.yml index cfc1774..e32bc17 100644 --- a/.github/workflows/ExtractConfiguration.yml +++ b/.github/workflows/ExtractConfiguration.yml @@ -34,15 +34,6 @@ on: required: false default: '3.13' type: string - package_namespace: - description: 'Name of the tool''s namespace.' - required: false - default: '' - type: string - package_name: - description: 'Name of the tool''s package.' - required: true - type: string coverage_config: description: 'Path to the .coveragerc file. Use pyproject.toml by default.' required: false @@ -50,92 +41,44 @@ on: type: string outputs: - package_fullname: - description: "" - value: ${{ jobs.Extract.outputs.package_fullname }} - package_directory: - description: "" - value: ${{ jobs.Extract.outputs.package_directory }} - unittest_report_xml_directory: - description: "" - value: ${{ jobs.Extract.outputs.unittest_report_xml_directory }} - unittest_report_xml_filename: - description: "" - value: ${{ jobs.Extract.outputs.unittest_report_xml_filename }} 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: + coverage_report_html: description: "" - value: ${{ jobs.Extract.outputs.coverage_report_html_directory }} - coverage_report_xml_directory: - description: "" - value: ${{ jobs.Extract.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: - description: "" - value: ${{ jobs.Extract.outputs.coverage_report_xml_filename }} + value: ${{ jobs.Extract.outputs.coverage_report_html }} coverage_report_xml: description: "" value: ${{ jobs.Extract.outputs.coverage_report_xml }} - coverage_report_json_directory: - description: "" - value: ${{ jobs.Extract.outputs.coverage_report_json_directory }} - coverage_report_json_filename: - description: "" - value: ${{ jobs.Extract.outputs.coverage_report_json_filename }} coverage_report_json: description: "" value: ${{ jobs.Extract.outputs.coverage_report_json }} - typing_report_cobertura_directory: + typing_report_cobertura: description: "" - value: ${{ jobs.Extract.outputs.typing_report_cobertura_directory }} - typing_report_cobertura_file: + value: ${{ jobs.Extract.outputs.typing_report_cobertura }} + typing_report_junit: description: "" - value: ${{ jobs.Extract.outputs.typing_report_cobertura_file }} - typing_report_junit_directory: + value: ${{ jobs.Extract.outputs.typing_report_junit }} + typing_report_html: description: "" - value: ${{ jobs.Extract.outputs.typing_report_junit_directory }} - typing_report_junit_file: - description: "" - value: ${{ jobs.Extract.outputs.typing_report_junit_file }} - typing_report_html_directory: - description: "" - value: ${{ jobs.Extract.outputs.typing_report_html_directory }} + value: ${{ jobs.Extract.outputs.typing_report_html }} jobs: Extract: 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 }} - 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 }} - typing_report_cobertura_directory: ${{ steps.getVariables.outputs.typing_report_cobertura_directory }} - typing_report_cobertura_file: ${{ steps.getVariables.outputs.typing_report_cobertura_file }} - typing_report_junit_directory: ${{ steps.getVariables.outputs.typing_report_junit_directory }} - typing_report_junit_file: ${{ steps.getVariables.outputs.typing_report_junit_file }} - typing_report_html_directory: ${{ steps.getVariables.outputs.typing_report_html_directory }} + unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }} + unittest_merged_report_xml: ${{ steps.getVariables.outputs.unittest_merged_report_xml }} + coverage_report_html: ${{ steps.getVariables.outputs.coverage_report_html }} + coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }} + coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }} + typing_report_cobertura: ${{ steps.getVariables.outputs.typing_report_cobertura }} + typing_report_junit: ${{ steps.getVariables.outputs.typing_report_junit }} + typing_report_html: ${{ steps.getVariables.outputs.typing_report_html }} steps: - name: ⏬ Checkout repository @@ -150,54 +93,17 @@ jobs: run: | python -m pip install --disable-pip-version-check -U wheel tomli - - name: 🔁 Full package name and directory - id: getPackageName - shell: python - run: | - from os import getenv - from pathlib import Path - from textwrap import dedent - - namespace = "${{ inputs.package_namespace }}".strip() - name = "${{ inputs.package_name }}".strip() - - print(dedent(f"""\ - INPUTS: - package_namespace: {namespace} - package_name: {name} - """)) - - if namespace == "" or namespace == ".": - fullname = f"{name}" - directory = f"{name}" - else: - fullname = f"{namespace}.{name}" - directory = f"{namespace}/{name}" - - print(dedent(f"""\ - OUTPUTS: - package_fullname: {fullname} - package_directory: {directory} - """)) - - github_output = Path(getenv("GITHUB_OUTPUT")) - print(f"GITHUB_OUTPUT: {github_output}") - with github_output.open("a+", encoding="utf-8") as f: - f.write(dedent(f"""\ - package_fullname={fullname} - package_directory={directory} - """)) - - name: 🔁 Extract configurations from pyproject.toml id: getVariables shell: python run: | + from json import dumps as json_dumps from os import getenv from pathlib import Path from sys import version from textwrap import dedent - print(f"Python: {version}") + print(f"Python: {version} (of default installation)") from tomli import load as tomli_load @@ -247,29 +153,58 @@ jobs: print(f"::error title=FileNotFoundError::File '{coverageRCFile}' not found.") exit(1) + unittest_report_xml = { + "fullpath": unittestXMLFile.as_posix(), + "directory": unittestXMLFile.parent.as_posix(), + "filename": unittestXMLFile.name + } + unittest_merged_report_xml = { + "fullpath": mergedUnittestXMLFile.as_posix(), + "directory": mergedUnittestXMLFile.parent.as_posix(), + "filename": mergedUnittestXMLFile.name + } + coverage_report_html = { + "fullpath": coverageHTMLDirectory.as_posix(), + "directory": coverageHTMLDirectory.as_posix() + } + coverage_report_xml = { + "fullpath": coverageXMLFile.as_posix(), + "directory": coverageXMLFile.parent.as_posix(), + "filename": coverageXMLFile.name + } + coverage_report_json = { + "fullpath": coverageJSONFile.as_posix(), + "directory": coverageJSONFile.parent.as_posix(), + "filename": coverageJSONFile.name + } + typing_report_cobertura = { + "fullpath": typingCoberturaFile.as_posix(), + "directory": typingCoberturaFile.parent.as_posix(), + "filename": typingCoberturaFile.name + } + typing_report_junit = { + "fullpath": typingJUnitFile.as_posix(), + "directory": typingJUnitFile.parent.as_posix(), + "filename": typingJUnitFile.name + } + typing_report_html = { + "fullpath": typingHTMLDirectory.as_posix(), + "directory": typingHTMLDirectory.as_posix() + } + # Write jobs to special file github_output = Path(getenv("GITHUB_OUTPUT")) print(f"GITHUB_OUTPUT: {github_output}") with github_output.open("a+", encoding="utf-8") as f: f.write(dedent(f"""\ - 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} - coverage_report_xml={coverageXMLFile.as_posix()} - coverage_report_json_directory={coverageJSONFile.parent.as_posix()} - coverage_report_json_filename={coverageJSONFile.name} - coverage_report_json={coverageJSONFile.as_posix()} - typing_report_cobertura_directory={typingCoberturaFile.parent.as_posix()} - typing_report_cobertura_file={typingCoberturaFile.name} - typing_report_junit_directory={typingJUnitFile.parent.as_posix()} - typing_report_junit_file={typingJUnitFile.name} - typing_report_html_directory={typingHTMLDirectory.as_posix()} + unittest_report_xml={json_dumps(unittest_report_xml)} + unittest_merged_report_xml={json_dumps(unittest_merged_report_xml)} + coverage_report_html={json_dumps(coverage_report_html)} + coverage_report_xml={json_dumps(coverage_report_xml)} + coverage_report_json={json_dumps(coverage_report_json)} + typing_report_cobertura={json_dumps(typing_report_cobertura)} + typing_report_junit={json_dumps(typing_report_junit)} + typing_report_html={json_dumps(typing_report_html)} """)) print(dedent(f"""\ @@ -283,3 +218,43 @@ jobs: typing junit: {typingJUnitFile} typing html: {typingHTMLDirectory} """)) + + - name: Debug JSON objects + run: | + printf "unittest_report_xml: JSON=%s\n" "${{ steps.getVariables.outputs.unittest_report_xml }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_report_xml).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_report_xml).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_report_xml).filename }}" + + printf "unittest_merged_report_xml: JSON=%s\n" "${{ steps.getVariables.outputs.unittest_merged_report_xml }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_merged_report_xml).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_merged_report_xml).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.unittest_merged_report_xml).filename }}" + + printf "coverage_report_html: JSON=%s\n" "${{ steps.getVariables.outputs.coverage_report_html }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_html).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_html).directory }}" + + printf "coverage_report_xml: JSON=%s\n" "${{ steps.getVariables.outputs.coverage_report_xml }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_xml).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_xml).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_xml).filename }}" + + printf "coverage_report_json: JSON=%s\n" "${{ steps.getVariables.outputs.coverage_report_json }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_json).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_json).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.coverage_report_json).filename }}" + + printf "typing_report_cobertura: JSON=%s\n" "${{ steps.getVariables.outputs.typing_report_cobertura }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_cobertura).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_cobertura).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_cobertura).filename }}" + + printf "typing_report_junit: JSON=%s\n" "${{ steps.getVariables.outputs.typing_report_junit }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_junit).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_junit).directory }}" + printf " filename: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_junit).filename }}" + + printf "typing_report_html: JSON=%s\n" "${{ steps.getVariables.outputs.typing_report_html }}" + printf " fullpath: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_html).fullpath }}" + printf " directory: %s\n" "${{ fromJSON(steps.getVariables.outputs.typing_report_html).directory }}" diff --git a/.github/workflows/PublishCoverageResults.yml b/.github/workflows/PublishCoverageResults.yml index d782f39..920c075 100644 --- a/.github/workflows/PublishCoverageResults.yml +++ b/.github/workflows/PublishCoverageResults.yml @@ -48,37 +48,37 @@ on: required: false default: '' type: string - coverage_report_xml_directory: + coverage_report_xml: description: 'Directory containing the XML coverage report file.' required: false default: 'report/coverage' type: string - coverage_report_xml_filename: - description: 'Filename of the XML coverage report file.' - required: false - default: 'coverage.xml' - type: string +# coverage_report_xml_filename: +# description: 'Filename of the XML coverage report file.' +# required: false +# default: 'coverage.xml' +# type: string coverage_json_artifact: description: 'Name of the JSON coverage artifact.' required: false default: '' type: string - coverage_report_json_directory: + coverage_report_json: description: 'Directory containing the JSON coverage report file.' required: false default: 'report/coverage' type: string - coverage_report_json_filename: - description: 'Filename of the JSON coverage report file.' - required: false - default: 'coverage.json' - type: string +# coverage_report_json_filename: +# description: 'Filename of the JSON coverage report file.' +# required: false +# default: 'coverage.json' +# type: string coverage_html_artifact: description: 'Name of the HTML coverage artifact.' required: false default: '' type: string - coverage_report_html_directory: + coverage_report_html: description: 'HTML root directory of the generated coverage report.' required: false default: 'report/coverage/html' @@ -152,8 +152,8 @@ jobs: if: inputs.coverage_html_artifact != '' run: | coverage html --rcfile=${{ inputs.coverage_config }} --data-file=.coverage - rm ${{ inputs.coverage_report_html_directory }}/.gitignore - tree -pash ${{ inputs.coverage_report_html_directory }} + rm ${{ fromJson(inputs.coverage_report_html).directory }}/.gitignore + tree -pash ${{ fromJson(inputs.coverage_report_html).directory }} - name: 📤 Upload 'Coverage SQLite Database' artifact uses: pyTooling/upload-artifact@v4 @@ -171,8 +171,8 @@ jobs: continue-on-error: true with: name: ${{ inputs.coverage_xml_artifact }} - working-directory: ${{ inputs.coverage_report_xml_directory }} - path: ${{ inputs.coverage_report_xml_filename }} + working-directory: ${{ fromJson(inputs.coverage_report_xml).directory }} + path: ${{ fromJson(inputs.coverage_report_xml).filename }} if-no-files-found: error retention-days: 1 @@ -182,8 +182,8 @@ jobs: continue-on-error: true with: name: ${{ inputs.coverage_json_artifact }} - working-directory: ${{ inputs.coverage_report_json_directory }} - path: ${{ inputs.coverage_report_json_filename }} + working-directory: ${{ fromJson(inputs.coverage_report_json).directory }} + path: ${{ fromJson(inputs.coverage_report_json).filename }} if-no-files-found: error retention-days: 1 @@ -193,7 +193,7 @@ jobs: continue-on-error: true with: name: ${{ inputs.coverage_html_artifact }} - working-directory: ${{ inputs.coverage_report_html_directory }} + working-directory: ${{ fromJson(inputs.coverage_report_html).directory }} path: '*' if-no-files-found: error retention-days: 1 @@ -206,7 +206,7 @@ jobs: with: token: ${{ secrets.CODECOV_TOKEN }} disable_search: true - files: ${{ inputs.coverage_report_xml_directory }}/${{ inputs.coverage_report_xml_filename }} + files: ${{ fromJson(inputs.coverage_report_xml).fullpath }} flags: unittests env_vars: PYTHON fail_ci_if_error: true @@ -218,7 +218,7 @@ jobs: continue-on-error: true with: project-token: ${{ secrets.CODACY_TOKEN }} - coverage-reports: ${{ inputs.coverage_report_xml_directory }}/${{ inputs.coverage_report_xml_filename }} + coverage-reports: ${{ fromJson(inputs.coverage_report_xml).fullpath }} - name: Generate error messages run: | diff --git a/.github/workflows/SphinxDocumentation.yml b/.github/workflows/SphinxDocumentation.yml index 41aac0f..ab8a21b 100644 --- a/.github/workflows/SphinxDocumentation.yml +++ b/.github/workflows/SphinxDocumentation.yml @@ -45,7 +45,7 @@ on: default: 'doc' type: string coverage_report_json_directory: - description: '' + description: 'report/coverage' required: false type: string coverage_json_artifact: diff --git a/.github/workflows/StaticTypeCheck.yml b/.github/workflows/StaticTypeCheck.yml index 9a415ce..2ac647c 100644 --- a/.github/workflows/StaticTypeCheck.yml +++ b/.github/workflows/StaticTypeCheck.yml @@ -45,43 +45,33 @@ on: required: false default: '' type: string + cobertura_report: + description: 'Cobertura file to upload as an artifact.' + required: false + default: '{"fullpath": "report/typing/cobertura.xml", "directory": "report/typing", "filename": "cobertura.xml"}' + type: string + junit_report: + description: 'JUnit file to upload as an artifact.' + required: false + default: '{"fullpath": "report/typing/StaticTypingSummary.xml", "directory": "report/typing", "filename": "StaticTypingSummary.xml"}' + type: string html_report: description: 'Directory to upload as an artifact.' required: false - default: 'report/typing/html' + default: '{"fullpath": "report/typing/html", "directory": "report/typing/html"}' type: string - junit_report_directory: - description: 'JUnit file to upload as an artifact.' - required: false - default: 'report/typing' - type: string - junit_report_file: - description: 'JUnit file to upload as an artifact.' - required: false - default: 'StaticTypingSummary.xml' - type: string - cobertura_report_directory: - description: 'Cobertura file to upload as an artifact.' - required: false - default: 'report/typing' - type: string - cobertura_report_file: - description: 'Cobertura file to upload as an artifact.' - required: false - default: 'cobertura.xml' - type: string - html_artifact: - description: 'Name of the typing artifact (HTML report).' + cobertura_artifact: + description: 'Name of the typing cobertura artifact (Cobertura XML).' required: false default: '' type: string junit_artifact: - description: 'Name of the typing junit artifact (junit XML).' + description: 'Name of the typing junit artifact (JUnit XML).' required: false default: '' type: string - cobertura_artifact: - description: 'Name of the typing cobertura artifact (Cobertura XML).' + html_artifact: + description: 'Name of the typing artifact (HTML report).' required: false default: '' type: string @@ -119,56 +109,56 @@ jobs: ANSI_LIGHT_BLUE=$'\x1b[94m' ANSI_NOCOLOR=$'\x1b[0m' - if [[ "${{ inputs.html_report }}" != "" ]]; then - printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.html_report }}' ..." - tree ${{ inputs.html_report }} + if [[ "${{ fromJson(inputs.html_report).directory }}" != "" ]]; then + printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.html_report).directory }}' ..." + tree ${{ fromJson(inputs.html_report).directory }} printf "::endgroup::\n" fi - if [[ "${{ inputs.junit_report_directory }}" != "" ]]; then - printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.junit_report_directory }}' ..." - tree ${{ inputs.junit_report_directory }} + if [[ "${{ fromJson(inputs.junit_report).directory }}" != "" ]]; then + printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.junit_report).directory }}' ..." + tree ${{ fromJson(inputs.junit_report).directory }} printf "::endgroup::\n" - if [[ "${{ inputs.cobertura_report_directory }}" != "" && "${{ inputs.junit_report_directory }}" != "${{ inputs.cobertura_report_directory }}" ]]; then - printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.cobertura_report_directory }}' ..." - tree ${{ inputs.cobertura_report_directory }} + if [[ "${{ fromJson(inputs.cobertura_report).directory }}" != "" && "${{ fromJson(inputs.junit_report).directory }}" != "${{ fromJson(inputs.cobertura_report).directory }}" ]]; then + printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.cobertura_report).directory }}' ..." + tree ${{ fromJson(inputs.cobertura_report).directory }} printf "::endgroup::\n" fi - elif [[ "${{ inputs.cobertura_report_directory }}" != "" ]]; then - printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.cobertura_report_directory }}' ..." - tree ${{ inputs.cobertura_report_directory }} + elif [[ "${{ fromJson(inputs.cobertura_report).directory }}" != "" ]]; then + printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.cobertura_report).directory }}' ..." + tree ${{ fromJson(inputs.cobertura_report).directory }} printf "::endgroup::\n" fi - - name: 📤 Upload 'Static Typing Report' HTML artifact + - name: 📤 Upload '${{ inputs.html_artifact }}' HTML artifact uses: pyTooling/upload-artifact@v4 if: ${{ inputs.html_artifact != '' }} continue-on-error: true with: name: ${{ inputs.html_artifact }} - working-directory: ${{ inputs.html_report }} + working-directory: ${{ fromJson(inputs.html_report).directory }} path: '*' if-no-files-found: error retention-days: 1 - - name: 📤 Upload 'Static Typing Report' JUnit artifact + - name: 📤 Upload '${{ inputs.junit_artifact }}' JUnit artifact uses: pyTooling/upload-artifact@v4 if: ${{ inputs.junit_artifact != '' }} continue-on-error: true with: name: ${{ inputs.junit_artifact }} - working-directory: ${{ inputs.junit_report_directory }} - path: ${{ inputs.junit_report_file }} + working-directory: ${{ fromJson(inputs.junit_report).directory }} + path: ${{ fromJson(inputs.junit_report).filename }} if-no-files-found: error retention-days: 1 - - name: 📤 Upload 'Static Typing Report' Cobertura artifact + - name: 📤 Upload '${{ inputs.cobertura_artifact }}' Cobertura artifact uses: pyTooling/upload-artifact@v4 if: ${{ inputs.cobertura_artifact != '' }} continue-on-error: true with: name: ${{ inputs.cobertura_artifact }} - working-directory: ${{ inputs.cobertura_report_directory }} - path: ${{ inputs.cobertura_report_file }} + working-directory: ${{ fromJson(inputs.cobertura_report).directory }} + path: ${{ fromJson(inputs.cobertura_report).filename }} if-no-files-found: error retention-days: 1 diff --git a/.github/workflows/UnitTesting.yml b/.github/workflows/UnitTesting.yml index 5886223..08d72a2 100644 --- a/.github/workflows/UnitTesting.yml +++ b/.github/workflows/UnitTesting.yml @@ -94,42 +94,42 @@ on: required: false default: 'unit' type: string - unittest_report_xml_directory: + unittest_report_xml: description: 'Path where to save the unittest summary report XML.' required: false default: 'report/unit' type: string - unittest_report_xml_filename: - description: 'Filename of the unittest summary report XML.' - required: false - default: 'TestReportSummary.xml' - type: string +# unittest_report_xml_filename: +# description: 'Filename of the unittest summary report XML.' +# required: false +# default: 'TestReportSummary.xml' +# type: string coverage_config: description: 'Path to the .coveragerc file. Use pyproject.toml by default.' required: false default: 'pyproject.toml' type: string - coverage_report_xml_directory: + coverage_report_xml: description: 'Directory where the coverage report in XML format will be generated.' required: false default: 'report/coverage' type: string - coverage_report_xml_filename: - description: 'Filename how the coverage report in XML format will be named.' - required: false - default: 'coverage.xml' - type: string - coverage_report_json_directory: +# coverage_report_xml_filename: +# description: 'Filename how the coverage report in XML format will be named.' +# required: false +# default: 'coverage.xml' +# type: string + coverage_report_json: description: 'Directory where the coverage report in JSON format will be generated.' required: false default: 'report/coverage' type: string - coverage_report_json_filename: - description: 'Filename how the coverage report in JSON format will be named.' - required: false - default: 'coverage.json' - type: string - coverage_report_html_directory: +# coverage_report_json_filename: +# description: 'Filename how the coverage report in JSON format will be named.' +# required: false +# default: 'coverage.json' +# type: string + coverage_report_html: description: 'Directory where the coverage report in HTML format will be generated.' required: false default: 'report/coverage/html' @@ -371,7 +371,7 @@ jobs: export PYTHONPATH=$(pwd) cd "${{ inputs.root_directory || '.' }}" - [ -n '${{ inputs.unittest_xml_artifact }}' ] && PYTEST_ARGS='--junitxml=${{ inputs.unittest_report_xml_directory }}/${{ inputs.unittest_report_xml_filename }}' || unset PYTEST_ARGS + [ -n '${{ inputs.unittest_xml_artifact }}' ] && PYTEST_ARGS='--junitxml=${{ fromJson(inputs.unittest_report_xml).fullpath }}' || unset PYTEST_ARGS if [ -n '${{ inputs.coverage_config }}' ]; then printf "%s\n" "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }}" coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }} @@ -389,7 +389,7 @@ jobs: $env:PYTHONPATH = (Get-Location).ToString() cd "${{ inputs.root_directory || '.' }}" - $PYTEST_ARGS = if ("${{ inputs.unittest_xml_artifact }}") { "--junitxml=${{ inputs.unittest_report_xml_directory }}/${{ inputs.unittest_report_xml_filename }}" } else { "" } + $PYTEST_ARGS = if ("${{ inputs.unittest_xml_artifact }}") { "--junitxml=${{ fromJson(inputs.unittest_report_xml).fullpath }}" } else { "" } if ("${{ inputs.coverage_config }}") { Write-Host "coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }}" coverage run --data-file=.coverage --rcfile=pyproject.toml -m pytest -raP $PYTEST_ARGS --color=yes ${{ inputs.tests_directory || '.' }}/${{ inputs.unittest_directory }} @@ -415,19 +415,19 @@ jobs: if: inputs.coverage_html_artifact != '' continue-on-error: true run: | - coverage html --data-file=.coverage -d ${{ inputs.coverage_report_html_directory }} - rm ${{ inputs.coverage_report_html_directory }}/.gitignore + coverage html --data-file=.coverage -d ${{ fromJson(inputs.coverage_report_html).directory }} + rm ${{ fromJson(inputs.coverage_report_html).directory }}/.gitignore # Upload artifacts - - name: 📤 Upload '${{ inputs.unittest_report_xml_filename }}' artifact + - name: 📤 Upload '${{ fromJson(inputs.unittest_report_xml).filename }}' artifact uses: pyTooling/upload-artifact@v4 if: inputs.unittest_xml_artifact != '' continue-on-error: true with: name: ${{ inputs.unittest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} - working-directory: ${{ inputs.unittest_report_xml_directory }} - path: ${{ inputs.unittest_report_xml_filename }} + working-directory: ${{ fromJson(inputs.unittest_report_xml).directory }} + path: ${{ fromJson(inputs.unittest_report_xml).filename }} if-no-files-found: error retention-days: 1 @@ -458,8 +458,8 @@ jobs: uses: pyTooling/upload-artifact@v4 with: name: ${{ inputs.coverage_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} - working-directory: ${{ inputs.coverage_report_xml_directory }} - path: ${{ inputs.coverage_report_xml_filename }} + working-directory: ${{ fromJson(inputs.coverage_report_xml).directory }} + path: ${{ fromJson(inputs.coverage_report_xml).filename }} if-no-files-found: error retention-days: 1 @@ -469,8 +469,8 @@ jobs: uses: pyTooling/upload-artifact@v4 with: name: ${{ inputs.coverage_json_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} - working-directory: ${{ inputs.coverage_report_json_directory }} - path: ${{ inputs.coverage_report_json_filename }} + working-directory: ${{ fromJson(inputs.coverage_report_json).directory }} + path: ${{ fromJson(inputs.coverage_report_json).filename }} if-no-files-found: error retention-days: 1 @@ -480,7 +480,7 @@ jobs: uses: pyTooling/upload-artifact@v4 with: name: ${{ inputs.coverage_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} - working-directory: ${{ inputs.coverage_report_html_directory }} + working-directory: ${{ fromJson(inputs.coverage_report_html).directory }} path: '*' if-no-files-found: error retention-days: 1 diff --git a/.github/workflows/_Checking_AvailableRunners.yml b/.github/workflows/_Checking_AvailableRunners.yml index b398896..1b8b7ea 100644 --- a/.github/workflows/_Checking_AvailableRunners.yml +++ b/.github/workflows/_Checking_AvailableRunners.yml @@ -9,24 +9,25 @@ jobs: name: ${{ matrix.icon }} ${{ matrix.name }} runs-on: ${{ matrix.image }} + continue-on-error: ${{ matrix.can-fail }} strategy: fail-fast: false matrix: include: - - {icon: '🐧', name: 'Ubuntu 22.04 (x86-64)', image: 'ubuntu-22.04', shell: 'bash'} - - {icon: '🐧', name: 'Ubuntu 24.04 (x86-64)', image: 'ubuntu-24.04', shell: 'bash'} # latest - - {icon: '🍎', name: 'macOS-13 (x86-64)', image: 'macos-13', shell: 'bash'} - - {icon: '🍎', name: 'macOS-14 (x86-64)', image: 'macos-14-large', shell: 'bash'} # not in free plan - - {icon: '🍎', name: 'macOS-15 (x86-64)', image: 'macos-15-large', shell: 'bash'} # not in free plan - - {icon: '🍏', name: 'macOS-13 (aarch64)', image: 'macos-13-xlarge', shell: 'bash'} - - {icon: '🍏', name: 'macOS-14 (aarch64)', image: 'macos-14', shell: 'bash'} # latest - - {icon: '🍏', name: 'macOS-15 (aarch64)', image: 'macos-15', shell: 'bash'} - - {icon: '🪟', name: 'Windows Server 2022', image: 'windows-2022', shell: 'bash'} - - {icon: '🪟', name: 'Windows Server 2025', image: 'windows-2025', shell: 'bash'} # latest + - {icon: '🐧', name: 'Ubuntu 22.04 (x86-64)', image: 'ubuntu-22.04', shell: 'bash', can-fail: false} + - {icon: '🐧', name: 'Ubuntu 24.04 (x86-64)', image: 'ubuntu-24.04', shell: 'bash', can-fail: false} # latest + - {icon: '🍎', name: 'macOS-13 (x86-64)', image: 'macos-13', shell: 'bash', can-fail: false} + - {icon: '🍎', name: 'macOS-14 (x86-64)', image: 'macos-14-large', shell: 'bash', can-fail: true } # not in free plan + - {icon: '🍎', name: 'macOS-15 (x86-64)', image: 'macos-15-large', shell: 'bash', can-fail: true } # not in free plan + - {icon: '🍏', name: 'macOS-13 (aarch64)', image: 'macos-13-xlarge', shell: 'bash', can-fail: true } # not in free plan + - {icon: '🍏', name: 'macOS-14 (aarch64)', image: 'macos-14', shell: 'bash', can-fail: false} # latest + - {icon: '🍏', name: 'macOS-15 (aarch64)', image: 'macos-15', shell: 'bash', can-fail: false} + - {icon: '🪟', name: 'Windows Server 2022', image: 'windows-2022', shell: 'bash', can-fail: false} + - {icon: '🪟', name: 'Windows Server 2025', image: 'windows-2025', shell: 'bash', can-fail: false} # latest # Third party images by ARM for aarch64 - - {icon: '⛄', name: 'Ubuntu 22.04 (aarch64)', image: 'ubuntu-22.04-arm', shell: 'bash'} - - {icon: '⛄', name: 'Ubuntu 24.04 (aarch64)', image: 'ubuntu-24.04-arm', shell: 'bash'} - - {icon: '🏢', name: 'Windows 11 (arch64)', image: 'windows-11-arm', shell: 'bash'} + - {icon: '⛄', name: 'Ubuntu 22.04 (aarch64)', image: 'ubuntu-22.04-arm', shell: 'bash', can-fail: false} + - {icon: '⛄', name: 'Ubuntu 24.04 (aarch64)', image: 'ubuntu-24.04-arm', shell: 'bash', can-fail: false} + - {icon: '🏢', name: 'Windows 11 (arch64)', image: 'windows-11-arm', shell: 'bash', can-fail: false} defaults: run: diff --git a/.github/workflows/_Checking_JobTemplates.yml b/.github/workflows/_Checking_JobTemplates.yml index b6d95e4..949b9c7 100644 --- a/.github/workflows/_Checking_JobTemplates.yml +++ b/.github/workflows/_Checking_JobTemplates.yml @@ -10,8 +10,6 @@ jobs: ConfigParams: uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev - with: - package_name: myPackage InstallParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev @@ -39,20 +37,17 @@ jobs: - ConfigParams - UnitTestingParams with: - jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} - unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} - unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} - coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} - coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} - unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} - unittest_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} - coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} - coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} - coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} - coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} + jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} + unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }} + coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }} + coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }} + coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }} + unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} + unittest_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} + coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} + coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} + coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} + coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} PlatformTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev @@ -60,22 +55,19 @@ jobs: - ConfigParams - PlatformTestingParams with: - jobs: ${{ needs.PlatformTestingParams.outputs.python_jobs }} + jobs: ${{ needs.PlatformTestingParams.outputs.python_jobs }} # tests_directory: "" - unittest_directory: platform - unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} - unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} - coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} - coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} - unittest_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }} - unittest_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }} - coverage_sqlite_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }} - coverage_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_xml }} - coverage_json_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_json }} - coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }} + unittest_directory: platform + unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }} + coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }} + coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }} + coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }} + unittest_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }} + unittest_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }} + coverage_sqlite_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }} + coverage_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_xml }} + coverage_json_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_json }} + coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }} StaticTypeCheck: uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev @@ -84,7 +76,7 @@ jobs: - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} - html_report: ${{ needs.ConfigParams.outputs.typing_report_html_directory }} + html_report: ${{ needs.ConfigParams.outputs.typing_report_html }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} DocCoverage: @@ -110,14 +102,13 @@ jobs: Install: uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev needs: - - ConfigParams - UnitTestingParams - InstallParams - Package with: jobs: ${{ needs.InstallParams.outputs.python_jobs }} wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} - package_name: ${{ needs.ConfigParams.outputs.package_fullname }} + package_name: ${{ needs.UnitTestingParams.outputs.package_fullname }} PublishCoverageResults: uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev @@ -127,17 +118,15 @@ jobs: - UnitTesting - PlatformTesting with: - coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} - coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} - coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} - coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} - coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} - coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} - coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} - codecov: true - codacy: true + coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }} + coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }} + coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }} + coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} + coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} + coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} + coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} + codecov: true + codacy: true secrets: inherit PublishTestResults: @@ -149,7 +138,7 @@ jobs: - PlatformTesting with: additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit;reduce-depth:pytest.tests.platform"' - testsuite-summary-name: ${{ needs.ConfigParams.outputs.package_fullname }} + testsuite-summary-name: ${{ needs.UnitTestingParams.outputs.package_fullname }} merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} codecov: true dorny: true @@ -171,12 +160,13 @@ jobs: - PublishCoverageResults # - VerifyDocs with: - python_version: ${{ needs.UnitTestingParams.outputs.python_version }} - coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} - unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} - coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} - html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} - latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} + python_version: ${{ needs.UnitTestingParams.outputs.python_version }} + unittest_xml_directory: ${{ fromJson(needs.ConfigParams.outputs.unittest_report_xml).directory }} + coverage_report_json_directory: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).directory }} + unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} + coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} + html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} + latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} IntermediateCleanUp: uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev diff --git a/.github/workflows/_Checking_Parameters.yml b/.github/workflows/_Checking_Parameters.yml index 1644717..78fd649 100644 --- a/.github/workflows/_Checking_Parameters.yml +++ b/.github/workflows/_Checking_Parameters.yml @@ -82,20 +82,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_Default.outputs.python_version }}""" @@ -158,20 +160,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_PythonVersions.outputs.python_version }}""" @@ -234,20 +238,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_Systems.outputs.python_version }}""" @@ -310,20 +316,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_Include.outputs.python_version }}""" @@ -386,20 +394,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_Exclude.outputs.python_version }}""" @@ -462,20 +472,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_Disable.outputs.python_version }}""" @@ -538,20 +550,22 @@ jobs: expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs expectedName = "Example" expectedArtifacts = { - "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", - "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", - "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", - "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", - "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", - "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", - "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", - "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", - "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", - "statictyping_html": f"{expectedName}-StaticTyping-HTML", - "package_all": f"{expectedName}-Packages", - "documentation_html": f"{expectedName}-Documentation-HTML", - "documentation_latex": f"{expectedName}-Documentation-LaTeX", - "documentation_pdf": f"{expectedName}-Documentation-PDF", + "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", + "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", + "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", + "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", + "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", + "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", + "codecoverage_xml": f"{expectedName}-CodeCoverage-XML", + "codecoverage_json": f"{expectedName}-CodeCoverage-JSON", + "codecoverage_html": f"{expectedName}-CodeCoverage-HTML", + "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML", + "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML", + "statictyping_html": f"{expectedName}-StaticTyping-HTML", + "package_all": f"{expectedName}-Packages", + "documentation_html": f"{expectedName}-Documentation-HTML", + "documentation_latex": f"{expectedName}-Documentation-LaTeX", + "documentation_pdf": f"{expectedName}-Documentation-PDF", } actualPythonVersion = """${{ needs.Params_All.outputs.python_version }}"""