Skip to content

Commit 297bf1b

Browse files
committed
Pipeline update.
1 parent 6b27f24 commit 297bf1b

File tree

6 files changed

+158
-77
lines changed

6 files changed

+158
-77
lines changed

.github/workflows/Pipeline.yml

Lines changed: 152 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -4,124 +4,204 @@ on:
44
push:
55
workflow_dispatch:
66
schedule:
7-
- cron: '0 0 * * 5'
7+
# Every Friday at 22:00 - rerun pipeline to check for dependency-based issues
8+
- cron: '0 22 * * 5'
89

910
jobs:
11+
UnitTestingParams:
12+
uses: pyTooling/Actions/.github/workflows/Parameters.yml@r1
13+
with:
14+
name: pyEDAA.ProjectModel
15+
python_version_list: "3.9 3.10 3.11 3.12 pypy-3.9 pypy-3.10"
16+
disable_list: "mingw64:* ucrt64:*"
1017

11-
Params:
18+
AppTestingParams:
1219
uses: pyTooling/Actions/.github/workflows/Parameters.yml@dev
1320
with:
1421
name: pyEDAA.ProjectModel
22+
python_version_list: "" # use latest Python version
23+
system_list: "ubuntu macos macos-arm"
24+
# include_list:
25+
# exclude_list:
26+
# disable_list: "windows:pypy-3.8 windows:pypy-3.9 windows:pypy-3.10"
1527

1628
UnitTesting:
1729
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@dev
1830
needs:
19-
- Params
20-
with:
21-
jobs: ${{ needs.Params.outputs.python_jobs }}
22-
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}
23-
24-
Coverage:
25-
uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@dev
26-
needs:
27-
- Params
31+
- UnitTestingParams
2832
with:
29-
python_version: ${{ needs.Params.outputs.python_version }}
30-
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
31-
secrets:
32-
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
33+
jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }}
34+
requirements: "-r tests/unit/requirements.txt"
35+
# pacboy: "msys/git python-lxml:p"
36+
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
37+
coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
3338

3439
StaticTypeCheck:
35-
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@dev
40+
uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r1
3641
needs:
37-
- Params
42+
- UnitTestingParams
3843
with:
39-
python_version: ${{ needs.Params.outputs.python_version }}
44+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
4045
commands: |
41-
cd pyEDAA
42-
mypy --html-report ../htmlmypy -p ProjectModel
43-
html_artifact: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
46+
touch pyEDAA/__init__.py
47+
mypy --html-report htmlmypy -p pyEDAA.ProjectModel
48+
html_report: 'htmlmypy'
49+
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
4450

45-
PublishTestResults:
46-
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
51+
DocCoverage:
52+
uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@r1
4753
needs:
48-
- UnitTesting
54+
- UnitTestingParams
4955
with:
50-
additional_merge_args: '"--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit"'
56+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
57+
directory: pyEDAA/ProjectModel
58+
# fail_below: 70
5159

5260
Package:
53-
uses: pyTooling/Actions/.github/workflows/Package.yml@dev
61+
uses: pyTooling/Actions/.github/workflows/Package.yml@r1
5462
needs:
55-
- Params
56-
- Coverage
63+
- UnitTestingParams
64+
- UnitTesting
5765
with:
58-
python_version: ${{ needs.Params.outputs.python_version }}
59-
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
66+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
67+
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
6068

61-
Release:
62-
uses: pyTooling/Actions/.github/workflows/Release.yml@dev
63-
if: startsWith(github.ref, 'refs/tags')
69+
AppTesting:
70+
uses: pyTooling/Actions/.github/workflows/ApplicationTesting.yml@r1
6471
needs:
65-
- UnitTesting
66-
- Coverage
67-
- StaticTypeCheck
72+
- AppTestingParams
73+
- UnitTestingParams
6874
- Package
75+
with:
76+
jobs: ${{ needs.AppTestingParams.outputs.python_jobs }}
77+
wheel: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
78+
apptest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }}
6979

70-
PublishOnPyPI:
71-
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@dev
72-
if: startsWith(github.ref, 'refs/tags')
80+
PublishCoverageResults:
81+
uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r1
7382
needs:
74-
- Params
75-
- Release
76-
- Package
83+
- UnitTestingParams
84+
- UnitTesting
7785
with:
78-
python_version: ${{ needs.Params.outputs.python_version }}
79-
requirements: -r dist/requirements.txt
80-
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
86+
# coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
87+
# coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
88+
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
89+
coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
8190
secrets:
82-
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
91+
codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }}
8392

84-
VerifyDocs:
85-
uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@dev
93+
PublishTestResults:
94+
uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@dev
8695
needs:
87-
- Params
96+
- UnitTestingParams
97+
- UnitTesting
98+
with:
99+
merged_junit_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
100+
101+
# VerifyDocs:
102+
# uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r1
103+
# needs:
104+
# - UnitTestingParams
105+
# with:
106+
# python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
107+
108+
HTMLDocumentation:
109+
uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@r1
110+
needs:
111+
- UnitTestingParams
112+
- PublishTestResults
113+
- PublishCoverageResults
114+
# - VerifyDocs
88115
with:
89-
python_version: ${{ needs.Params.outputs.python_version }}
116+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
117+
unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-ubuntu-native-3.12
118+
coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
119+
html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
120+
latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
90121

91-
BuildTheDocs:
92-
uses: pyTooling/Actions/.github/workflows/BuildTheDocs.yml@dev
122+
IntermediateCleanUp:
123+
uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@r1
93124
needs:
94-
- Params
95-
- VerifyDocs
125+
- UnitTestingParams
126+
- PublishCoverageResults
127+
- PublishTestResults
128+
- HTMLDocumentation
96129
with:
97-
artifact: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
130+
sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-
131+
xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-
132+
133+
# PDFDocumentation:
134+
# uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@r1
135+
# needs:
136+
# - UnitTestingParams
137+
# - HTMLDocumentation
138+
# with:
139+
# document: pyEDAA.ProjectModel
140+
# latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
141+
# pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}
98142

99143
PublishToGitHubPages:
100-
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@dev
144+
uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r1
101145
needs:
102-
- Params
103-
- BuildTheDocs
104-
- Coverage
146+
- UnitTestingParams
147+
- HTMLDocumentation
148+
# - PDFDocumentation
149+
- PublishCoverageResults
105150
- StaticTypeCheck
106151
with:
107-
doc: ${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
108-
coverage: ${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
109-
typing: ${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
152+
doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
153+
coverage: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
154+
typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
155+
156+
ReleasePage:
157+
uses: pyTooling/Actions/.github/workflows/Release.yml@r1
158+
if: startsWith(github.ref, 'refs/tags')
159+
needs:
160+
- Package
161+
- AppTesting
162+
- PublishToGitHubPages
163+
164+
PublishOnPyPI:
165+
uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r1
166+
if: startsWith(github.ref, 'refs/tags')
167+
needs:
168+
- UnitTestingParams
169+
- ReleasePage
170+
with:
171+
python_version: ${{ needs.UnitTestingParams.outputs.python_version }}
172+
requirements: -r dist/requirements.txt
173+
artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
174+
secrets:
175+
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
110176

111177
ArtifactCleanUp:
112-
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@dev
178+
uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r1
113179
needs:
114-
- Params
180+
- UnitTestingParams
115181
- UnitTesting
116-
- Coverage
117182
- StaticTypeCheck
118-
- BuildTheDocs
119-
- PublishToGitHubPages
183+
- HTMLDocumentation
184+
# - PDFDocumentation
120185
- PublishTestResults
186+
- PublishCoverageResults
187+
- PublishToGitHubPages
188+
# - PublishOnPyPI
189+
- IntermediateCleanUp
121190
with:
122-
package: ${{ fromJson(needs.Params.outputs.artifact_names).package_all }}
191+
package: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }}
123192
remaining: |
124-
${{ fromJson(needs.Params.outputs.artifact_names).unittesting_xml }}-*
125-
${{ fromJson(needs.Params.outputs.artifact_names).codecoverage_html }}
126-
${{ fromJson(needs.Params.outputs.artifact_names).statictyping_html }}
127-
${{ fromJson(needs.Params.outputs.artifact_names).documentation_html }}
193+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}-*
194+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}-*
195+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}-*
196+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}-*
197+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}
198+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}
199+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}
200+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}
201+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}
202+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}
203+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }}
204+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }}
205+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }}
206+
${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).apptesting_xml }}-*
207+
# ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }}

.idea/pyEDAA.ProjectModel.iml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

doc/Dependency.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ the mandatory dependencies too.
6363
+=====================================================================+=============+========================================================================================+======================+
6464
| `pytest <https://GitHub.com/pytest-dev/pytest>`__ | ≥8.3 | `MIT <https://GitHub.com/pytest-dev/pytest/blob/master/LICENSE>`__ | *Not yet evaluated.* |
6565
+---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
66-
| `pytest-cov <https://GitHub.com/pytest-dev/pytest-cov>`__ |5.0 | `MIT <https://GitHub.com/pytest-dev/pytest-cov/blob/master/LICENSE>`__ | *Not yet evaluated.* |
66+
| `pytest-cov <https://GitHub.com/pytest-dev/pytest-cov>`__ |6.0 | `MIT <https://GitHub.com/pytest-dev/pytest-cov/blob/master/LICENSE>`__ | *Not yet evaluated.* |
6767
+---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+
6868
| `Coverage <https://GitHub.com/nedbat/coveragepy>`__ | ≥7.6 | `Apache License, 2.0 <https://GitHub.com/nedbat/coveragepy/blob/master/LICENSE.txt>`__ | *Not yet evaluated.* |
6969
+---------------------------------------------------------------------+-------------+----------------------------------------------------------------------------------------+----------------------+

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[build-system]
22
requires = [
3-
"setuptools ~= 75.2",
3+
"setuptools ~= 75.3",
44
"wheel ~= 0.44",
55
"pyTooling ~= 7.0"
66
]
@@ -11,7 +11,7 @@ line-length = 120
1111

1212
[tool.mypy]
1313
files = ["pyEDAA.ProjectModel"]
14-
python_version = "3.12"
14+
python_version = "3.13"
1515
#ignore_missing_imports = true
1616
strict = true
1717
pretty = true

tests/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Coverage ~= 7.6
55

66
# Test Runner
77
pytest ~= 8.3
8-
pytest-cov ~= 5.0
8+
pytest-cov ~= 6.0
99

1010
# Static Type Checking
1111
mypy ~= 1.13

tests/unit/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-r ../requirements.txt

0 commit comments

Comments
 (0)