mirror of
https://github.com/pyTooling/Actions.git
synced 2026-02-12 02:56:56 +08:00
Improved landing page.
This commit is contained in:
@@ -74,22 +74,7 @@ It can be used for simple Python packages as well as namespace packages.
|
|||||||
|
|
||||||
.. topic:: Behavior
|
.. topic:: Behavior
|
||||||
|
|
||||||
1. Infer information from ``${{ github.ref }}`` variable.
|
.. include:: _Behavior.rst
|
||||||
2. Extract Python project settings from :file:`pyproject.toml`.
|
|
||||||
3. Compute job matrix based on system, Python version, environment, ... for job variants.
|
|
||||||
4. Run unit tests using pytest and collect code coverage.
|
|
||||||
5. Run platform tests using pytest and collect code coverage.
|
|
||||||
6. Run application tests using pytest.
|
|
||||||
7. Package code as wheel.
|
|
||||||
8. Check documentation coverage using docstr_coverage and interrogate.
|
|
||||||
9. Verify type annotation using static typing analysis using mypy.
|
|
||||||
10. Merge unit test results and code coverage results.
|
|
||||||
11. Generate HTML and LaTeX documentations using Sphinx.
|
|
||||||
12. Translate LaTeX documentation to PDF using MikTeX.
|
|
||||||
13. Publish unit test and code coverage results to cloud services.
|
|
||||||
14. Publish documentation to GitHub Pages.
|
|
||||||
15. Publish wheel to PyPI.
|
|
||||||
16. Create a GitHub release page and upload release assets.
|
|
||||||
|
|
||||||
|
|
||||||
.. topic:: Pipeline Graph
|
.. topic:: Pipeline Graph
|
||||||
|
|||||||
16
doc/JobTemplate/AllInOne/_Behavior.rst
Normal file
16
doc/JobTemplate/AllInOne/_Behavior.rst
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
1. Infer information from ``${{ github.ref }}`` variable.
|
||||||
|
2. Extract Python project settings from :file:`pyproject.toml`.
|
||||||
|
3. Compute job matrix based on system, Python version, environment, ... for job variants.
|
||||||
|
4. Run unit tests using pytest and collect code coverage.
|
||||||
|
5. Run platform tests using pytest and collect code coverage.
|
||||||
|
6. Run application tests using pytest.
|
||||||
|
7. Package code as wheel.
|
||||||
|
8. Check documentation coverage using docstr_coverage and interrogate.
|
||||||
|
9. Verify type annotation using static typing analysis using mypy.
|
||||||
|
10. Merge unit test results and code coverage results.
|
||||||
|
11. Generate HTML and LaTeX documentations using Sphinx.
|
||||||
|
12. Translate LaTeX documentation to PDF using MikTeX.
|
||||||
|
13. Publish unit test and code coverage results to cloud services.
|
||||||
|
14. Publish documentation to GitHub Pages.
|
||||||
|
15. Publish wheel to PyPI.
|
||||||
|
16. Create a GitHub release page and upload release assets.
|
||||||
@@ -65,12 +65,48 @@ Example Pipelines
|
|||||||
* Set the ``name`` input of job ``Parameters``.
|
* Set the ``name`` input of job ``Parameters``.
|
||||||
* Specify the ``commands`` input of job ``StaticTypeCheck``.
|
* Specify the ``commands`` input of job ``StaticTypeCheck``.
|
||||||
|
|
||||||
|
.. rubric:: Behavior
|
||||||
|
|
||||||
|
.. include:: JobTemplate/AllInOne/_Behavior.rst
|
||||||
|
|
||||||
.. grid-item::
|
.. grid-item::
|
||||||
:columns: 6
|
:columns: 6
|
||||||
|
|
||||||
.. tab-set::
|
.. tab-set::
|
||||||
|
|
||||||
|
.. tab-item:: Directory Structure
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
<RepositoryRoot>/
|
||||||
|
.github/
|
||||||
|
workflows/
|
||||||
|
Pipeline.yml
|
||||||
|
dist/
|
||||||
|
requirements.txt
|
||||||
|
docs/
|
||||||
|
conf.py
|
||||||
|
index.rst
|
||||||
|
requirements.txt
|
||||||
|
myPackage/
|
||||||
|
ModuleA.py
|
||||||
|
__init__.py
|
||||||
|
py.typed
|
||||||
|
tests/
|
||||||
|
unit/
|
||||||
|
TestA.py
|
||||||
|
requirements.txt
|
||||||
|
requirements.txt
|
||||||
|
.editorconfig
|
||||||
|
.gitignore
|
||||||
|
LICENSE.md
|
||||||
|
pyproject.toml
|
||||||
|
README.md
|
||||||
|
requirements.txt
|
||||||
|
setup.py
|
||||||
|
|
||||||
.. tab-item:: Simple Package
|
.. tab-item:: Simple Package
|
||||||
|
:selected:
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@@ -123,6 +159,65 @@ Example Pipelines
|
|||||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||||
CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }}
|
CODACY_TOKEN: ${{ secrets.CODACY_TOKEN }}
|
||||||
|
|
||||||
|
.. tab-item:: :file:`pyproject.toml`
|
||||||
|
|
||||||
|
.. code-block:: toml
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools >= 80.0", "wheel ~= 0.45", "pyTooling ~= 8.5"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[tool.mypy]
|
||||||
|
packages = ["myPackage"]
|
||||||
|
python_version = "3.13"
|
||||||
|
strict = true
|
||||||
|
pretty = true
|
||||||
|
show_error_context = true
|
||||||
|
show_error_codes = true
|
||||||
|
namespace_packages = true
|
||||||
|
html_report = "report/typing"
|
||||||
|
|
||||||
|
[tool.pytest]
|
||||||
|
junit_xml = "report/unit/UnittestReportSummary.xml"
|
||||||
|
|
||||||
|
[tool.pyedaa-reports]
|
||||||
|
junit_xml = "report/unit/unittest.xml"
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
addopts = "--tb=native"
|
||||||
|
python_files = "*"
|
||||||
|
python_functions = "test_*"
|
||||||
|
filterwarnings = ["error::DeprecationWarning", "error::PendingDeprecationWarning"]
|
||||||
|
junit_logging = "all"
|
||||||
|
|
||||||
|
[tool.interrogate]
|
||||||
|
color = true
|
||||||
|
verbose = 1 # possible values: 0 (minimal output), 1 (-v), 2 (-vv)
|
||||||
|
fail-under = 59
|
||||||
|
ignore-setters = true
|
||||||
|
|
||||||
|
[tool.coverage.run]
|
||||||
|
branch = true
|
||||||
|
relative_files = true
|
||||||
|
omit = ["*site-packages*", "setup.py", "tests/unit/*"]
|
||||||
|
|
||||||
|
[tool.coverage.report]
|
||||||
|
skip_covered = false
|
||||||
|
skip_empty = true
|
||||||
|
exclude_lines = ["pragma: no cover", "raise NotImplementedError"]
|
||||||
|
omit = ["tests/*"]
|
||||||
|
|
||||||
|
[tool.coverage.xml]
|
||||||
|
output = "report/coverage/coverage.xml"
|
||||||
|
|
||||||
|
[tool.coverage.json]
|
||||||
|
output = "report/coverage/coverage.json"
|
||||||
|
|
||||||
|
[tool.coverage.html]
|
||||||
|
directory = "report/coverage/html"
|
||||||
|
title="Code Coverage of myPackage"
|
||||||
|
|
||||||
|
|
||||||
.. image:: _static/pyTooling-Actions-SimplePackage.png
|
.. image:: _static/pyTooling-Actions-SimplePackage.png
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -77,4 +77,4 @@ output = "report/coverage/coverage.json"
|
|||||||
|
|
||||||
[tool.coverage.html]
|
[tool.coverage.html]
|
||||||
directory = "report/coverage/html"
|
directory = "report/coverage/html"
|
||||||
title="Code Coverage of pyDummy"
|
title="Code Coverage of myPackage"
|
||||||
|
|||||||
Reference in New Issue
Block a user