Reduced number of parameters by passing JSON objects.

This commit is contained in:
Patrick Lehmann
2025-09-15 22:47:55 +02:00
parent e2e8b39c41
commit 1041e7b5c7
9 changed files with 389 additions and 429 deletions

View File

@@ -130,9 +130,6 @@ jobs:
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev
with:
package_namespace: ${{ inputs.package_namespace }}
package_name: ${{ inputs.package_name }}
UnitTestingParams: UnitTestingParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
@@ -177,17 +174,15 @@ jobs:
- UnitTestingParams - UnitTestingParams
with: with:
jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }}
# TODO: shouldn't this be configured by a parameter? Same as directories
requirements: "-r tests/unit/requirements.txt" requirements: "-r tests/unit/requirements.txt"
# pacboy: "msys/git python-lxml:p" # pacboy: "msys/git python-lxml:p"
unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }}
unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
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 }}
StaticTypeCheck: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
@@ -195,24 +190,21 @@ jobs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
junit_report_directory: ${{ needs.ConfigParams.outputs.typing_report_junit_directory }} cobertura_report: ${{ needs.ConfigParams.outputs.typing_report_cobertura }}
junit_report_file: ${{ needs.ConfigParams.outputs.typing_report_junit_file }} junit_report: ${{ needs.ConfigParams.outputs.typing_report_junit }}
junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_junit }} html_report: ${{ needs.ConfigParams.outputs.typing_report_html }}
cobertura_report_directory: ${{ needs.ConfigParams.outputs.typing_report_cobertura_directory }} cobertura_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_cobertura }}
cobertura_report_file: ${{ needs.ConfigParams.outputs.typing_report_cobertura_file }} junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_junit }}
cobertura_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_cobertura }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
html_report: ${{ needs.ConfigParams.outputs.typing_report_html_directory }}
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
DocCoverage: DocCoverage:
uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@dev
needs: needs:
- ConfigParams
- UnitTestingParams - UnitTestingParams
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
directory: ${{ needs.ConfigParams.outputs.package_directory }} directory: ${{ needs.UnitTestingParams.outputs.package_directory }}
Package: Package:
uses: pyTooling/Actions/.github/workflows/Package.yml@dev uses: pyTooling/Actions/.github/workflows/Package.yml@dev
@@ -226,14 +218,13 @@ jobs:
Install: Install:
uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev
needs: needs:
- ConfigParams
- UnitTestingParams - UnitTestingParams
- InstallParams - InstallParams
- Package - Package
with: with:
jobs: ${{ needs.InstallParams.outputs.python_jobs }} jobs: ${{ needs.InstallParams.outputs.python_jobs }}
wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
package_name: ${{ needs.ConfigParams.outputs.package_fullname }} package_name: ${{ needs.UnitTestingParams.outputs.package_fullname }}
# AppTesting: # AppTesting:
# uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@dev # 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_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
# coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} # coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }}
# coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} # coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }}
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} 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: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} codecov: ${{ inputs.codecov }}
codecov: ${{ inputs.codecov }} codacy: ${{ inputs.codacy }}
codacy: ${{ inputs.codacy }}
secrets: secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }} CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }}
@@ -277,8 +267,8 @@ jobs:
- UnitTesting - UnitTesting
if: success() || failure() if: success() || failure()
with: with:
testsuite-summary-name: ${{ needs.ConfigParams.outputs.package_fullname }} testsuite-summary-name: ${{ needs.UnitTestingParams.outputs.package_fullname }}
merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }} merged_junit_filename: ${{ fromJson(needs.ConfigParams.outputs.unittest_merged_report_xml).filename }}
merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
dorny: ${{ inputs.dorny }} dorny: ${{ inputs.dorny }}
codecov: ${{ inputs.codecov }} codecov: ${{ inputs.codecov }}
@@ -303,7 +293,7 @@ jobs:
if: success() || failure() if: success() || failure()
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} 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 }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
@@ -326,7 +316,7 @@ jobs:
- UnitTestingParams - UnitTestingParams
- Documentation - Documentation
with: with:
document: ${{ needs.ConfigParams.outputs.package_fullname }} document: ${{ needs.UnitTestingParams.outputs.package_fullname }}
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }} pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}
can-fail: 'true' can-fail: 'true'

View File

@@ -34,15 +34,6 @@ on:
required: false required: false
default: '3.13' default: '3.13'
type: string 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: coverage_config:
description: 'Path to the .coveragerc file. Use pyproject.toml by default.' description: 'Path to the .coveragerc file. Use pyproject.toml by default.'
required: false required: false
@@ -50,92 +41,44 @@ on:
type: string type: string
outputs: 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: unittest_report_xml:
description: "" description: ""
value: ${{ jobs.Extract.outputs.unittest_report_xml }} 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: unittest_merged_report_xml:
description: "" description: ""
value: ${{ jobs.Extract.outputs.unittest_merged_report_xml }} value: ${{ jobs.Extract.outputs.unittest_merged_report_xml }}
coverage_report_html_directory: coverage_report_html:
description: "" description: ""
value: ${{ jobs.Extract.outputs.coverage_report_html_directory }} value: ${{ jobs.Extract.outputs.coverage_report_html }}
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 }}
coverage_report_xml: coverage_report_xml:
description: "" description: ""
value: ${{ jobs.Extract.outputs.coverage_report_xml }} 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: coverage_report_json:
description: "" description: ""
value: ${{ jobs.Extract.outputs.coverage_report_json }} value: ${{ jobs.Extract.outputs.coverage_report_json }}
typing_report_cobertura_directory: typing_report_cobertura:
description: "" description: ""
value: ${{ jobs.Extract.outputs.typing_report_cobertura_directory }} value: ${{ jobs.Extract.outputs.typing_report_cobertura }}
typing_report_cobertura_file: typing_report_junit:
description: "" description: ""
value: ${{ jobs.Extract.outputs.typing_report_cobertura_file }} value: ${{ jobs.Extract.outputs.typing_report_junit }}
typing_report_junit_directory: typing_report_html:
description: "" description: ""
value: ${{ jobs.Extract.outputs.typing_report_junit_directory }} value: ${{ jobs.Extract.outputs.typing_report_html }}
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 }}
jobs: jobs:
Extract: Extract:
name: 📓 Extract configurations from pyproject.toml name: 📓 Extract configurations from pyproject.toml
runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}"
outputs: outputs:
package_fullname: ${{ steps.getPackageName.outputs.package_fullname }} unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }}
package_directory: ${{ steps.getPackageName.outputs.package_directory }} unittest_merged_report_xml: ${{ steps.getVariables.outputs.unittest_merged_report_xml }}
unittest_report_xml_directory: ${{ steps.getVariables.outputs.unittest_report_xml_directory }} coverage_report_html: ${{ steps.getVariables.outputs.coverage_report_html }}
unittest_report_xml_filename: ${{ steps.getVariables.outputs.unittest_report_xml_filename }} coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }}
unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }} coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }}
unittest_merged_report_xml_directory: ${{ steps.getVariables.outputs.unittest_merged_report_xml_directory }} typing_report_cobertura: ${{ steps.getVariables.outputs.typing_report_cobertura }}
unittest_merged_report_xml_filename: ${{ steps.getVariables.outputs.unittest_merged_report_xml_filename }} typing_report_junit: ${{ steps.getVariables.outputs.typing_report_junit }}
unittest_merged_report_xml: ${{ steps.getVariables.outputs.unittest_merged_report_xml }} typing_report_html: ${{ steps.getVariables.outputs.typing_report_html }}
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 }}
steps: steps:
- name: ⏬ Checkout repository - name: ⏬ Checkout repository
@@ -150,54 +93,17 @@ jobs:
run: | run: |
python -m pip install --disable-pip-version-check -U wheel tomli 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 - name: 🔁 Extract configurations from pyproject.toml
id: getVariables id: getVariables
shell: python shell: python
run: | run: |
from json import dumps as json_dumps
from os import getenv from os import getenv
from pathlib import Path from pathlib import Path
from sys import version from sys import version
from textwrap import dedent from textwrap import dedent
print(f"Python: {version}") print(f"Python: {version} (of default installation)")
from tomli import load as tomli_load from tomli import load as tomli_load
@@ -247,29 +153,58 @@ jobs:
print(f"::error title=FileNotFoundError::File '{coverageRCFile}' not found.") print(f"::error title=FileNotFoundError::File '{coverageRCFile}' not found.")
exit(1) 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 # Write jobs to special file
github_output = Path(getenv("GITHUB_OUTPUT")) github_output = Path(getenv("GITHUB_OUTPUT"))
print(f"GITHUB_OUTPUT: {github_output}") print(f"GITHUB_OUTPUT: {github_output}")
with github_output.open("a+", encoding="utf-8") as f: with github_output.open("a+", encoding="utf-8") as f:
f.write(dedent(f"""\ f.write(dedent(f"""\
unittest_report_xml_directory={unittestXMLFile.parent.as_posix()} unittest_report_xml={json_dumps(unittest_report_xml)}
unittest_report_xml_filename={unittestXMLFile.name} unittest_merged_report_xml={json_dumps(unittest_merged_report_xml)}
unittest_report_xml={unittestXMLFile.as_posix()} coverage_report_html={json_dumps(coverage_report_html)}
unittest_merged_report_xml_directory={mergedUnittestXMLFile.parent.as_posix()} coverage_report_xml={json_dumps(coverage_report_xml)}
unittest_merged_report_xml_filename={mergedUnittestXMLFile.name} coverage_report_json={json_dumps(coverage_report_json)}
unittest_merged_report_xml={mergedUnittestXMLFile.as_posix()} typing_report_cobertura={json_dumps(typing_report_cobertura)}
coverage_report_html_directory={coverageHTMLDirectory.as_posix()} typing_report_junit={json_dumps(typing_report_junit)}
coverage_report_xml_directory={coverageXMLFile.parent.as_posix()} typing_report_html={json_dumps(typing_report_html)}
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()}
""")) """))
print(dedent(f"""\ print(dedent(f"""\
@@ -283,3 +218,43 @@ jobs:
typing junit: {typingJUnitFile} typing junit: {typingJUnitFile}
typing html: {typingHTMLDirectory} 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 }}"

View File

@@ -48,37 +48,37 @@ on:
required: false required: false
default: '' default: ''
type: string type: string
coverage_report_xml_directory: coverage_report_xml:
description: 'Directory containing the XML coverage report file.' description: 'Directory containing the XML coverage report file.'
required: false required: false
default: 'report/coverage' default: 'report/coverage'
type: string type: string
coverage_report_xml_filename: # coverage_report_xml_filename:
description: 'Filename of the XML coverage report file.' # description: 'Filename of the XML coverage report file.'
required: false # required: false
default: 'coverage.xml' # default: 'coverage.xml'
type: string # type: string
coverage_json_artifact: coverage_json_artifact:
description: 'Name of the JSON coverage artifact.' description: 'Name of the JSON coverage artifact.'
required: false required: false
default: '' default: ''
type: string type: string
coverage_report_json_directory: coverage_report_json:
description: 'Directory containing the JSON coverage report file.' description: 'Directory containing the JSON coverage report file.'
required: false required: false
default: 'report/coverage' default: 'report/coverage'
type: string type: string
coverage_report_json_filename: # coverage_report_json_filename:
description: 'Filename of the JSON coverage report file.' # description: 'Filename of the JSON coverage report file.'
required: false # required: false
default: 'coverage.json' # default: 'coverage.json'
type: string # type: string
coverage_html_artifact: coverage_html_artifact:
description: 'Name of the HTML coverage artifact.' description: 'Name of the HTML coverage artifact.'
required: false required: false
default: '' default: ''
type: string type: string
coverage_report_html_directory: coverage_report_html:
description: 'HTML root directory of the generated coverage report.' description: 'HTML root directory of the generated coverage report.'
required: false required: false
default: 'report/coverage/html' default: 'report/coverage/html'
@@ -152,8 +152,8 @@ jobs:
if: inputs.coverage_html_artifact != '' if: inputs.coverage_html_artifact != ''
run: | run: |
coverage html --rcfile=${{ inputs.coverage_config }} --data-file=.coverage coverage html --rcfile=${{ inputs.coverage_config }} --data-file=.coverage
rm ${{ inputs.coverage_report_html_directory }}/.gitignore rm ${{ fromJson(inputs.coverage_report_html).directory }}/.gitignore
tree -pash ${{ inputs.coverage_report_html_directory }} tree -pash ${{ fromJson(inputs.coverage_report_html).directory }}
- name: 📤 Upload 'Coverage SQLite Database' artifact - name: 📤 Upload 'Coverage SQLite Database' artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
@@ -171,8 +171,8 @@ jobs:
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.coverage_xml_artifact }} name: ${{ inputs.coverage_xml_artifact }}
working-directory: ${{ inputs.coverage_report_xml_directory }} working-directory: ${{ fromJson(inputs.coverage_report_xml).directory }}
path: ${{ inputs.coverage_report_xml_filename }} path: ${{ fromJson(inputs.coverage_report_xml).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -182,8 +182,8 @@ jobs:
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.coverage_json_artifact }} name: ${{ inputs.coverage_json_artifact }}
working-directory: ${{ inputs.coverage_report_json_directory }} working-directory: ${{ fromJson(inputs.coverage_report_json).directory }}
path: ${{ inputs.coverage_report_json_filename }} path: ${{ fromJson(inputs.coverage_report_json).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -193,7 +193,7 @@ jobs:
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.coverage_html_artifact }} name: ${{ inputs.coverage_html_artifact }}
working-directory: ${{ inputs.coverage_report_html_directory }} working-directory: ${{ fromJson(inputs.coverage_report_html).directory }}
path: '*' path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -206,7 +206,7 @@ jobs:
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
disable_search: true disable_search: true
files: ${{ inputs.coverage_report_xml_directory }}/${{ inputs.coverage_report_xml_filename }} files: ${{ fromJson(inputs.coverage_report_xml).fullpath }}
flags: unittests flags: unittests
env_vars: PYTHON env_vars: PYTHON
fail_ci_if_error: true fail_ci_if_error: true
@@ -218,7 +218,7 @@ jobs:
continue-on-error: true continue-on-error: true
with: with:
project-token: ${{ secrets.CODACY_TOKEN }} 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 - name: Generate error messages
run: | run: |

View File

@@ -45,7 +45,7 @@ on:
default: 'doc' default: 'doc'
type: string type: string
coverage_report_json_directory: coverage_report_json_directory:
description: '' description: 'report/coverage'
required: false required: false
type: string type: string
coverage_json_artifact: coverage_json_artifact:

View File

@@ -45,43 +45,33 @@ on:
required: false required: false
default: '' default: ''
type: string 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: html_report:
description: 'Directory to upload as an artifact.' description: 'Directory to upload as an artifact.'
required: false required: false
default: 'report/typing/html' default: '{"fullpath": "report/typing/html", "directory": "report/typing/html"}'
type: string type: string
junit_report_directory: cobertura_artifact:
description: 'JUnit file to upload as an artifact.' description: 'Name of the typing cobertura artifact (Cobertura XML).'
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).'
required: false required: false
default: '' default: ''
type: string type: string
junit_artifact: junit_artifact:
description: 'Name of the typing junit artifact (junit XML).' description: 'Name of the typing junit artifact (JUnit XML).'
required: false required: false
default: '' default: ''
type: string type: string
cobertura_artifact: html_artifact:
description: 'Name of the typing cobertura artifact (Cobertura XML).' description: 'Name of the typing artifact (HTML report).'
required: false required: false
default: '' default: ''
type: string type: string
@@ -119,56 +109,56 @@ jobs:
ANSI_LIGHT_BLUE=$'\x1b[94m' ANSI_LIGHT_BLUE=$'\x1b[94m'
ANSI_NOCOLOR=$'\x1b[0m' ANSI_NOCOLOR=$'\x1b[0m'
if [[ "${{ inputs.html_report }}" != "" ]]; then if [[ "${{ fromJson(inputs.html_report).directory }}" != "" ]]; then
printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.html_report }}' ..." printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.html_report).directory }}' ..."
tree ${{ inputs.html_report }} tree ${{ fromJson(inputs.html_report).directory }}
printf "::endgroup::\n" printf "::endgroup::\n"
fi fi
if [[ "${{ inputs.junit_report_directory }}" != "" ]]; then if [[ "${{ fromJson(inputs.junit_report).directory }}" != "" ]]; then
printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.junit_report_directory }}' ..." printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.junit_report).directory }}' ..."
tree ${{ inputs.junit_report_directory }} tree ${{ fromJson(inputs.junit_report).directory }}
printf "::endgroup::\n" printf "::endgroup::\n"
if [[ "${{ inputs.cobertura_report_directory }}" != "" && "${{ inputs.junit_report_directory }}" != "${{ inputs.cobertura_report_directory }}" ]]; then 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 '${{ inputs.cobertura_report_directory }}' ..." printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.cobertura_report).directory }}' ..."
tree ${{ inputs.cobertura_report_directory }} tree ${{ fromJson(inputs.cobertura_report).directory }}
printf "::endgroup::\n" printf "::endgroup::\n"
fi fi
elif [[ "${{ inputs.cobertura_report_directory }}" != "" ]]; then elif [[ "${{ fromJson(inputs.cobertura_report).directory }}" != "" ]]; then
printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ inputs.cobertura_report_directory }}' ..." printf "::group::${ANSI_LIGHT_BLUE}%s${ANSI_NOCOLOR}\n" "Content of '${{ fromJson(inputs.cobertura_report).directory }}' ..."
tree ${{ inputs.cobertura_report_directory }} tree ${{ fromJson(inputs.cobertura_report).directory }}
printf "::endgroup::\n" printf "::endgroup::\n"
fi fi
- name: 📤 Upload 'Static Typing Report' HTML artifact - name: 📤 Upload '${{ inputs.html_artifact }}' HTML artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
if: ${{ inputs.html_artifact != '' }} if: ${{ inputs.html_artifact != '' }}
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.html_artifact }} name: ${{ inputs.html_artifact }}
working-directory: ${{ inputs.html_report }} working-directory: ${{ fromJson(inputs.html_report).directory }}
path: '*' path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Static Typing Report' JUnit artifact - name: 📤 Upload '${{ inputs.junit_artifact }}' JUnit artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
if: ${{ inputs.junit_artifact != '' }} if: ${{ inputs.junit_artifact != '' }}
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.junit_artifact }} name: ${{ inputs.junit_artifact }}
working-directory: ${{ inputs.junit_report_directory }} working-directory: ${{ fromJson(inputs.junit_report).directory }}
path: ${{ inputs.junit_report_file }} path: ${{ fromJson(inputs.junit_report).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
- name: 📤 Upload 'Static Typing Report' Cobertura artifact - name: 📤 Upload '${{ inputs.cobertura_artifact }}' Cobertura artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
if: ${{ inputs.cobertura_artifact != '' }} if: ${{ inputs.cobertura_artifact != '' }}
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.cobertura_artifact }} name: ${{ inputs.cobertura_artifact }}
working-directory: ${{ inputs.cobertura_report_directory }} working-directory: ${{ fromJson(inputs.cobertura_report).directory }}
path: ${{ inputs.cobertura_report_file }} path: ${{ fromJson(inputs.cobertura_report).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -94,42 +94,42 @@ on:
required: false required: false
default: 'unit' default: 'unit'
type: string type: string
unittest_report_xml_directory: unittest_report_xml:
description: 'Path where to save the unittest summary report XML.' description: 'Path where to save the unittest summary report XML.'
required: false required: false
default: 'report/unit' default: 'report/unit'
type: string type: string
unittest_report_xml_filename: # unittest_report_xml_filename:
description: 'Filename of the unittest summary report XML.' # description: 'Filename of the unittest summary report XML.'
required: false # required: false
default: 'TestReportSummary.xml' # default: 'TestReportSummary.xml'
type: string # type: string
coverage_config: coverage_config:
description: 'Path to the .coveragerc file. Use pyproject.toml by default.' description: 'Path to the .coveragerc file. Use pyproject.toml by default.'
required: false required: false
default: 'pyproject.toml' default: 'pyproject.toml'
type: string type: string
coverage_report_xml_directory: coverage_report_xml:
description: 'Directory where the coverage report in XML format will be generated.' description: 'Directory where the coverage report in XML format will be generated.'
required: false required: false
default: 'report/coverage' default: 'report/coverage'
type: string type: string
coverage_report_xml_filename: # coverage_report_xml_filename:
description: 'Filename how the coverage report in XML format will be named.' # description: 'Filename how the coverage report in XML format will be named.'
required: false # required: false
default: 'coverage.xml' # default: 'coverage.xml'
type: string # type: string
coverage_report_json_directory: coverage_report_json:
description: 'Directory where the coverage report in JSON format will be generated.' description: 'Directory where the coverage report in JSON format will be generated.'
required: false required: false
default: 'report/coverage' default: 'report/coverage'
type: string type: string
coverage_report_json_filename: # coverage_report_json_filename:
description: 'Filename how the coverage report in JSON format will be named.' # description: 'Filename how the coverage report in JSON format will be named.'
required: false # required: false
default: 'coverage.json' # default: 'coverage.json'
type: string # type: string
coverage_report_html_directory: coverage_report_html:
description: 'Directory where the coverage report in HTML format will be generated.' description: 'Directory where the coverage report in HTML format will be generated.'
required: false required: false
default: 'report/coverage/html' default: 'report/coverage/html'
@@ -371,7 +371,7 @@ jobs:
export PYTHONPATH=$(pwd) export PYTHONPATH=$(pwd)
cd "${{ inputs.root_directory || '.' }}" 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 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 }}" 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 }} 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() $env:PYTHONPATH = (Get-Location).ToString()
cd "${{ inputs.root_directory || '.' }}" 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 }}") { 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 }}" 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 }} 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 != '' if: inputs.coverage_html_artifact != ''
continue-on-error: true continue-on-error: true
run: | run: |
coverage html --data-file=.coverage -d ${{ inputs.coverage_report_html_directory }} coverage html --data-file=.coverage -d ${{ fromJson(inputs.coverage_report_html).directory }}
rm ${{ inputs.coverage_report_html_directory }}/.gitignore rm ${{ fromJson(inputs.coverage_report_html).directory }}/.gitignore
# Upload artifacts # Upload artifacts
- name: 📤 Upload '${{ inputs.unittest_report_xml_filename }}' artifact - name: 📤 Upload '${{ fromJson(inputs.unittest_report_xml).filename }}' artifact
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
if: inputs.unittest_xml_artifact != '' if: inputs.unittest_xml_artifact != ''
continue-on-error: true continue-on-error: true
with: with:
name: ${{ inputs.unittest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.unittest_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: ${{ inputs.unittest_report_xml_directory }} working-directory: ${{ fromJson(inputs.unittest_report_xml).directory }}
path: ${{ inputs.unittest_report_xml_filename }} path: ${{ fromJson(inputs.unittest_report_xml).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -458,8 +458,8 @@ jobs:
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_xml_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: ${{ inputs.coverage_report_xml_directory }} working-directory: ${{ fromJson(inputs.coverage_report_xml).directory }}
path: ${{ inputs.coverage_report_xml_filename }} path: ${{ fromJson(inputs.coverage_report_xml).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -469,8 +469,8 @@ jobs:
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_json_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} name: ${{ inputs.coverage_json_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }}
working-directory: ${{ inputs.coverage_report_json_directory }} working-directory: ${{ fromJson(inputs.coverage_report_json).directory }}
path: ${{ inputs.coverage_report_json_filename }} path: ${{ fromJson(inputs.coverage_report_json).filename }}
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1
@@ -480,7 +480,7 @@ jobs:
uses: pyTooling/upload-artifact@v4 uses: pyTooling/upload-artifact@v4
with: with:
name: ${{ inputs.coverage_html_artifact }}-${{ matrix.system }}-${{ matrix.runtime }}-${{ matrix.python }} 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: '*' path: '*'
if-no-files-found: error if-no-files-found: error
retention-days: 1 retention-days: 1

View File

@@ -9,24 +9,25 @@ jobs:
name: ${{ matrix.icon }} ${{ matrix.name }} name: ${{ matrix.icon }} ${{ matrix.name }}
runs-on: ${{ matrix.image }} runs-on: ${{ matrix.image }}
continue-on-error: ${{ matrix.can-fail }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- {icon: '🐧', name: 'Ubuntu 22.04 (x86-64)', image: 'ubuntu-22.04', shell: 'bash'} - {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'} # latest - {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'} - {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'} # not in free plan - {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'} # 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'} - {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'} # latest - {icon: '🍏', name: 'macOS-14 (aarch64)', image: 'macos-14', shell: 'bash', can-fail: false} # latest
- {icon: '🍏', name: 'macOS-15 (aarch64)', image: 'macos-15', shell: 'bash'} - {icon: '🍏', name: 'macOS-15 (aarch64)', image: 'macos-15', shell: 'bash', can-fail: false}
- {icon: '🪟', name: 'Windows Server 2022', image: 'windows-2022', shell: 'bash'} - {icon: '🪟', name: 'Windows Server 2022', image: 'windows-2022', shell: 'bash', can-fail: false}
- {icon: '🪟', name: 'Windows Server 2025', image: 'windows-2025', shell: 'bash'} # latest - {icon: '🪟', name: 'Windows Server 2025', image: 'windows-2025', shell: 'bash', can-fail: false} # latest
# Third party images by ARM for aarch64 # Third party images by ARM for aarch64
- {icon: '⛄', name: 'Ubuntu 22.04 (aarch64)', image: 'ubuntu-22.04-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'} - {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'} - {icon: '🏢', name: 'Windows 11 (arch64)', image: 'windows-11-arm', shell: 'bash', can-fail: false}
defaults: defaults:
run: run:

View File

@@ -10,8 +10,6 @@ jobs:
ConfigParams: ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@dev
with:
package_name: myPackage
InstallParams: InstallParams:
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
@@ -39,20 +37,17 @@ jobs:
- ConfigParams - ConfigParams
- UnitTestingParams - UnitTestingParams
with: with:
jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }}
unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }}
unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} unittest_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}
coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
unittest_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
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: PlatformTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
@@ -60,22 +55,19 @@ jobs:
- ConfigParams - ConfigParams
- PlatformTestingParams - PlatformTestingParams
with: with:
jobs: ${{ needs.PlatformTestingParams.outputs.python_jobs }} jobs: ${{ needs.PlatformTestingParams.outputs.python_jobs }}
# tests_directory: "" # tests_directory: ""
unittest_directory: platform unittest_directory: platform
unittest_report_xml_directory: ${{ needs.ConfigParams.outputs.unittest_report_xml_directory }} unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }}
unittest_report_xml_filename: ${{ needs.ConfigParams.outputs.unittest_report_xml_filename }} coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} unittest_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }}
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} unittest_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }}
coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} coverage_sqlite_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }}
unittest_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }} coverage_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_xml }}
unittest_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }} coverage_json_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_json }}
coverage_sqlite_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }}
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: StaticTypeCheck:
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
@@ -84,7 +76,7 @@ jobs:
- UnitTestingParams - UnitTestingParams
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} 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 }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
DocCoverage: DocCoverage:
@@ -110,14 +102,13 @@ jobs:
Install: Install:
uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev uses: pyTooling/Actions/.github/workflows/InstallPackage.yml@dev
needs: needs:
- ConfigParams
- UnitTestingParams - UnitTestingParams
- InstallParams - InstallParams
- Package - Package
with: with:
jobs: ${{ needs.InstallParams.outputs.python_jobs }} jobs: ${{ needs.InstallParams.outputs.python_jobs }}
wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
package_name: ${{ needs.ConfigParams.outputs.package_fullname }} package_name: ${{ needs.UnitTestingParams.outputs.package_fullname }}
PublishCoverageResults: PublishCoverageResults:
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@dev
@@ -127,17 +118,15 @@ jobs:
- UnitTesting - UnitTesting
- PlatformTesting - PlatformTesting
with: with:
coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }} coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }} coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }} coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} codecov: true
coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }} codacy: true
codecov: true
codacy: true
secrets: inherit secrets: inherit
PublishTestResults: PublishTestResults:
@@ -149,7 +138,7 @@ jobs:
- PlatformTesting - PlatformTesting
with: with:
additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit;reduce-depth:pytest.tests.platform"' 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 }} merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
codecov: true codecov: true
dorny: true dorny: true
@@ -171,12 +160,13 @@ jobs:
- PublishCoverageResults - PublishCoverageResults
# - VerifyDocs # - VerifyDocs
with: with:
python_version: ${{ needs.UnitTestingParams.outputs.python_version }} python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} unittest_xml_directory: ${{ fromJson(needs.ConfigParams.outputs.unittest_report_xml).directory }}
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} coverage_report_json_directory: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).directory }}
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
IntermediateCleanUp: IntermediateCleanUp:
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@dev

View File

@@ -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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" 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 expectedJobs = [f"{system}:{python}" for system in expectedSystems for python in expectedPythons if f"{system}:{python}" not in excludedJobs] + includeJobs
expectedName = "Example" expectedName = "Example"
expectedArtifacts = { expectedArtifacts = {
"unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML", "unittesting_xml": f"{expectedName}-UnitTestReportSummary-XML",
"unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML", "unittesting_html": f"{expectedName}-UnitTestReportSummary-HTML",
"perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML", "perftesting_xml": f"{expectedName}-PerformanceTestReportSummary-XML",
"benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML", "benchtesting_xml": f"{expectedName}-BenchmarkTestReportSummary-XML",
"apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML", "apptesting_xml": f"{expectedName}-ApplicationTestReportSummary-XML",
"codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite", "codecoverage_sqlite": f"{expectedName}-CodeCoverage-SQLite",
"codecoverage_xml": f"{expectedName}-CodeCoverage-XML", "codecoverage_xml": f"{expectedName}-CodeCoverage-XML",
"codecoverage_json": f"{expectedName}-CodeCoverage-JSON", "codecoverage_json": f"{expectedName}-CodeCoverage-JSON",
"codecoverage_html": f"{expectedName}-CodeCoverage-HTML", "codecoverage_html": f"{expectedName}-CodeCoverage-HTML",
"statictyping_html": f"{expectedName}-StaticTyping-HTML", "statictyping_cobertura": f"{expectedName}-StaticTyping-Cobertura-XML",
"package_all": f"{expectedName}-Packages", "statictyping_junit": f"{expectedName}-StaticTyping-JUnit-XML",
"documentation_html": f"{expectedName}-Documentation-HTML", "statictyping_html": f"{expectedName}-StaticTyping-HTML",
"documentation_latex": f"{expectedName}-Documentation-LaTeX", "package_all": f"{expectedName}-Packages",
"documentation_pdf": f"{expectedName}-Documentation-PDF", "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 }}""" actualPythonVersion = """${{ needs.Params_All.outputs.python_version }}"""