Skip to content

Commit 33edd82

Browse files
authored
v4.3.0
2 parents 42e17fa + d08f312 commit 33edd82

20 files changed

+253
-146
lines changed

.github/workflows/CheckDocumentation.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ on:
3232
python_version:
3333
description: 'Python version.'
3434
required: false
35-
default: '3.12'
35+
default: '3.13'
3636
type: string
3737
directory:
3838
description: 'Source code directory to check.'

.github/workflows/CompletePipeline.yml

+63-21
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,33 @@ on:
9393
required: false
9494
default: ''
9595
type: string
96+
codecov:
97+
description: 'Publish merged coverage and unittest reports to Codecov.'
98+
required: false
99+
default: false
100+
type: boolean
101+
codacy:
102+
description: 'Publish merged coverage report to Codacy.'
103+
required: false
104+
default: false
105+
type: boolean
106+
dorny:
107+
description: 'Publish merged unittest report via Dorny Test-Reporter.'
108+
required: false
109+
default: false
110+
type: boolean
111+
cleanup:
112+
description: 'Cleanup artifacts afterwards.'
113+
required: false
114+
default: true
115+
type: boolean
96116
secrets:
97117
PYPI_TOKEN:
98118
description: "Token for pushing releases to PyPI."
99119
required: false
120+
CODECOV_TOKEN:
121+
description: "Token for pushing coverage and unittest results to Codecov."
122+
required: false
100123
CODACY_PROJECT_TOKEN:
101124
description: "Token for pushing coverage results to Codacy."
102125
required: false
@@ -127,10 +150,10 @@ jobs:
127150
package_name: ${{ inputs.package_name }}
128151
python_version: ${{ inputs.apptest_python_version }}
129152
python_version_list: ${{ inputs.apptest_python_version_list }}
130-
system_list: ${{ inputs.apptest_system_list }}
131-
include_list: ${{ inputs.apptest_include_list }}
132-
exclude_list: ${{ inputs.apptest_exclude_list }}
133-
disable_list: ${{ inputs.apptest_disable_list }}
153+
system_list: ${{ inputs.apptest_system_list }}
154+
include_list: ${{ inputs.apptest_include_list }}
155+
exclude_list: ${{ inputs.apptest_exclude_list }}
156+
disable_list: ${{ inputs.apptest_disable_list }}
134157

135158
UnitTesting:
136159
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@main
@@ -167,7 +190,7 @@ jobs:
167190
- UnitTestingParams
168191
with:
169192
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
170-
directory: ${{ inputs.package_namespace }}/${{ inputs.package_name }}
193+
directory: ${{ inputs.package_namespace }}/${{ inputs.package_name }}
171194
# fail_below: 70
172195

173196
Package:
@@ -177,7 +200,7 @@ jobs:
177200
- UnitTesting
178201
with:
179202
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
180-
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
203+
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
181204

182205
# AppTesting:
183206
# uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@main
@@ -193,24 +216,41 @@ jobs:
193216
PublishCoverageResults:
194217
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@main
195218
needs:
219+
- ConfigParams
196220
- UnitTestingParams
197221
- UnitTesting
198222
with:
199-
# coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
200-
# coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
201-
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
202-
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
223+
# coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
224+
# coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
225+
# coverage_report_xml_directory: ${{ needs.ConfigParams.outputs.coverage_report_xml_directory }}
226+
# coverage_report_xml_filename: ${{ needs.ConfigParams.outputs.coverage_report_xml_filename }}
227+
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
228+
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }}
229+
coverage_report_json_filename: ${{ needs.ConfigParams.outputs.coverage_report_json_filename }}
230+
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
231+
coverage_report_html_directory: ${{ needs.ConfigParams.outputs.coverage_report_html_directory }}
232+
codecov: ${{ inputs.codecov }}
233+
codacy: ${{ inputs.codacy }}
203234
secrets:
204-
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
235+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
236+
CODACY_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
205237

206238
PublishTestResults:
207239
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@main
208240
needs:
241+
- ConfigParams
209242
- UnitTestingParams
210243
- UnitTesting
211244
with:
212-
additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit"'
213-
merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
245+
additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit"'
246+
testsuite-summary-name: ${{ inputs.package_name }}
247+
merged_junit_filename: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml_filename }}
248+
merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
249+
dorny: ${{ inputs.dorny }}
250+
codecov: ${{ inputs.codecov }}
251+
252+
secrets:
253+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
214254

215255
# VerifyDocs:
216256
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@main
@@ -228,12 +268,12 @@ jobs:
228268
- PublishCoverageResults
229269
# - VerifyDocs
230270
with:
231-
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
271+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
232272
coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }}
233-
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-ubuntu-native-3.12
234-
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
235-
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
236-
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
273+
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
274+
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
275+
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
276+
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
237277

238278
IntermediateCleanUp:
239279
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@main
@@ -242,9 +282,10 @@ jobs:
242282
- PublishCoverageResults
243283
- PublishTestResults
244284
- Documentation
285+
if: ${{ inputs.cleanup }}
245286
with:
246287
sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-
247-
xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-
288+
xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-
248289

249290
# PDFDocumentation:
250291
# uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@main
@@ -265,9 +306,9 @@ jobs:
265306
- PublishCoverageResults
266307
- StaticTypeCheck
267308
with:
268-
doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
309+
doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
269310
coverage: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
270-
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
311+
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
271312

272313
ReleasePage:
273314
uses: pyTooling/Actions/.github/workflows/Release.yml@main
@@ -303,6 +344,7 @@ jobs:
303344
- PublishToGitHubPages
304345
# - PublishOnPyPI
305346
- IntermediateCleanUp
347+
if: ${{ inputs.cleanup }}
306348
with:
307349
package: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
308350
remaining: |

.github/workflows/ExtractConfiguration.yml

+31-15
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ on:
3232
python_version:
3333
description: 'Python version.'
3434
required: false
35-
default: '3.12'
35+
default: '3.13'
3636
type: string
3737
package_namespace:
3838
description: 'Name of the tool''s namespace.'
@@ -68,6 +68,15 @@ on:
6868
unittest_report_xml:
6969
description: ""
7070
value: ${{ jobs.Extract.outputs.unittest_report_xml }}
71+
unittest_merged_report_xml_directory:
72+
description: ""
73+
value: ${{ jobs.Extract.outputs.unittest_merged_report_xml_directory }}
74+
unittest_merged_report_xml_filename:
75+
description: ""
76+
value: ${{ jobs.Extract.outputs.unittest_merged_report_xml_filename }}
77+
unittest_merged_report_xml:
78+
description: ""
79+
value: ${{ jobs.Extract.outputs.unittest_merged_report_xml }}
7180
coverage_report_html_directory:
7281
description: ""
7382
value: ${{ jobs.Extract.outputs.coverage_report_html_directory }}
@@ -95,19 +104,22 @@ jobs:
95104
name: 📓 Extract configurations from pyproject.toml
96105
runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}"
97106
outputs:
98-
package_fullname: ${{ steps.getPackageName.outputs.package_fullname }}
99-
package_directory: ${{ steps.getPackageName.outputs.package_directory }}
100-
mypy_prepare_command: ${{ steps.getPackageName.outputs.mypy_prepare_command }}
101-
unittest_report_xml_directory: ${{ steps.getVariables.outputs.unittest_report_xml_directory }}
102-
unittest_report_xml_filename: ${{ steps.getVariables.outputs.unittest_report_xml_filename }}
103-
unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }}
104-
coverage_report_html_directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }}
105-
coverage_report_xml_directory: ${{ steps.getVariables.outputs.coverage_report_xml_directory }}
106-
coverage_report_xml_filename: ${{ steps.getVariables.outputs.coverage_report_xml_filename }}
107-
coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }}
108-
coverage_report_json_directory: ${{ steps.getVariables.outputs.coverage_report_json_directory }}
109-
coverage_report_json_filename: ${{ steps.getVariables.outputs.coverage_report_json_filename }}
110-
coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }}
107+
package_fullname: ${{ steps.getPackageName.outputs.package_fullname }}
108+
package_directory: ${{ steps.getPackageName.outputs.package_directory }}
109+
mypy_prepare_command: ${{ steps.getPackageName.outputs.mypy_prepare_command }}
110+
unittest_report_xml_directory: ${{ steps.getVariables.outputs.unittest_report_xml_directory }}
111+
unittest_report_xml_filename: ${{ steps.getVariables.outputs.unittest_report_xml_filename }}
112+
unittest_report_xml: ${{ steps.getVariables.outputs.unittest_report_xml }}
113+
unittest_merged_report_xml_directory: ${{ steps.getVariables.outputs.unittest_merged_report_xml_directory }}
114+
unittest_merged_report_xml_filename: ${{ steps.getVariables.outputs.unittest_merged_report_xml_filename }}
115+
unittest_merged_report_xml: ${{ steps.getVariables.outputs.unittest_merged_report_xml }}
116+
coverage_report_html_directory: ${{ steps.getVariables.outputs.coverage_report_html_directory }}
117+
coverage_report_xml_directory: ${{ steps.getVariables.outputs.coverage_report_xml_directory }}
118+
coverage_report_xml_filename: ${{ steps.getVariables.outputs.coverage_report_xml_filename }}
119+
coverage_report_xml: ${{ steps.getVariables.outputs.coverage_report_xml }}
120+
coverage_report_json_directory: ${{ steps.getVariables.outputs.coverage_report_json_directory }}
121+
coverage_report_json_filename: ${{ steps.getVariables.outputs.coverage_report_json_filename }}
122+
coverage_report_json: ${{ steps.getVariables.outputs.coverage_report_json }}
111123

112124
steps:
113125
- name: ⏬ Checkout repository
@@ -178,6 +190,7 @@ jobs:
178190
pyProjectSettings = tomli_load(file)
179191
180192
unittestXMLFile = Path(pyProjectSettings["tool"]["pytest"]["junit_xml"])
193+
mergedUnittestXMLFile = Path(pyProjectSettings["tool"]["pyedaa-reports"]["junit_xml"])
181194
coverageHTMLDirectory = Path(pyProjectSettings["tool"]["coverage"]["html"]["directory"])
182195
coverageXMLFile = Path(pyProjectSettings["tool"]["coverage"]["xml"]["output"])
183196
coverageJSONFile= Path(pyProjectSettings["tool"]["coverage"]["json"]["output"])
@@ -209,6 +222,9 @@ jobs:
209222
unittest_report_xml_directory={unittestXMLFile.parent.as_posix()}
210223
unittest_report_xml_filename={unittestXMLFile.name}
211224
unittest_report_xml={unittestXMLFile.as_posix()}
225+
unittest_merged_report_xml_directory={mergedUnittestXMLFile.parent.as_posix()}
226+
unittest_merged_report_xml_filename={mergedUnittestXMLFile.name}
227+
unittest_merged_report_xml={mergedUnittestXMLFile.as_posix()}
212228
coverage_report_html_directory={coverageHTMLDirectory.as_posix()}
213229
coverage_report_xml_directory={coverageXMLFile.parent.as_posix()}
214230
coverage_report_xml_filename={coverageXMLFile.name}
@@ -218,4 +234,4 @@ jobs:
218234
coverage_report_json={coverageJSONFile.as_posix()}
219235
"""))
220236
221-
print(f"DEBUG:\n unittest xml: {unittestXMLFile}\n coverage html: {coverageHTMLDirectory}\n coverage xml: {coverageXMLFile}\n coverage json: {coverageJSONFile}")
237+
print(f"DEBUG:\n unittest xml: {unittestXMLFile}\n merged unittest xml: {mergedUnittestXMLFile}\n coverage html: {coverageHTMLDirectory}\n coverage xml: {coverageXMLFile}\n coverage json: {coverageJSONFile}")

.github/workflows/Package.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ on:
3333
python_version:
3434
description: 'Python version.'
3535
required: false
36-
default: '3.12'
36+
default: '3.13'
3737
type: string
3838
requirements:
3939
description: 'Python dependencies to be installed through pip; if empty, use pyproject.toml through build.'

0 commit comments

Comments
 (0)