diff --git a/doc/CodeCoverage.rst b/doc/CodeCoverage.rst new file mode 100644 index 0000000..217fd1e --- /dev/null +++ b/doc/CodeCoverage.rst @@ -0,0 +1,25 @@ +.. _CODECOV: + +Code Coverage Report +#################### + +.. grid:: 2 + + .. grid-item:: + :columns: 8 + + .. report:code-coverage:: + :reportid: src + + .. grid-item:: + :columns: 4 + + .. report:code-coverage-legend:: + :reportid: src + :style: vertical-table + +---------- + +Code coverage report generated with `pytest `__, +`Coverage.py `__ and visualized by +`sphinx-reports `__. diff --git a/doc/DocCoverage.rst b/doc/DocCoverage.rst new file mode 100644 index 0000000..d2ee388 --- /dev/null +++ b/doc/DocCoverage.rst @@ -0,0 +1,24 @@ +.. _DOCCOV: + +Documentation Coverage Report +############################# + +.. grid:: 2 + + .. grid-item:: + :columns: 5 + + .. report:doc-coverage:: + :reportid: src + + .. grid-item:: + :columns: 7 + + .. report:doc-coverage-legend:: + :reportid: src + :style: vertical-table + +---------- + +Documentation coverage generated with `"""docstr-coverage""" `__ and +visualized by `sphinx-reports `__. diff --git a/doc/JobTemplate/AllInOne/CompletePipeline.rst b/doc/JobTemplate/AllInOne/CompletePipeline.rst new file mode 100644 index 0000000..719c611 --- /dev/null +++ b/doc/JobTemplate/AllInOne/CompletePipeline.rst @@ -0,0 +1,40 @@ +.. _JOBTMPL/CompletePipeline: + +CompletePipeline +################ + +The ``CompletePipeline`` job template is a workaround for the limitations of GitHub Actions to handle global variables in +GitHub Actions workflows (see `actions/runner#480 `__. + +It generates output parameters with artifact names and a job matrix to be used in later running jobs. + +**Behavior:** + +.. todo:: Parameters:Behavior Needs documentation. + +**Dependencies:** + +*None* + +Instantiation +************* + +Simple Example +============== + +The following instantiation example creates a job `Params` derived from job template `Parameters` version `r0`. It only +requires a `name` parameter to create the artifact names. + +.. code-block:: yaml + + name: Pipeline + + on: + push: + workflow_dispatch: + + jobs: + Params: + uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r0 + with: + name: pyTooling diff --git a/doc/JobTemplate/AllInOne/index.rst b/doc/JobTemplate/AllInOne/index.rst new file mode 100644 index 0000000..4671c20 --- /dev/null +++ b/doc/JobTemplate/AllInOne/index.rst @@ -0,0 +1,32 @@ +.. _JOBTMPL/AllInOne: + +All-In-One +########## + +The category *all-in-one* provides workflow templates implementing all necessary steps (jobs) for testing and publishing +a Python project. It utilizes allmost all of ``pyTooling/Acion``'s workflow templates. + +Such a all-in-one workflow template covers: + +* unit testing +* code coverage collections +* documentation checking +* pulishing of unit test and code coverage results +* merging of test reports +* packaging as wheel +* publishing wheels tp PyPI +* documentation generation via Sphinx and Miktex +* automatic tagging of release commits +* releasing + +.. topic:: Provides *all-in-one* workflow templates + + * :ref:`JOBTMPL/CompletePipeline` - Use all of ``pyTooling/Acion``'s workflow templates by instantiation of a single + workflow template. + +.. image:: ../../_static/pyTooling-Actions-SimplePackage.png + +.. toctree:: + :hidden: + + CompletePipeline diff --git a/doc/JobTemplate/ApplicationTesting.rst b/doc/JobTemplate/ApplicationTesting.rst new file mode 100644 index 0000000..9aac4df --- /dev/null +++ b/doc/JobTemplate/ApplicationTesting.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/ApplicationTesting: + +ApplicationTesting +################## + +.. todo:: ApplicationTesting:Need introduction. + +**Behavior:** + +.. todo:: ApplicationTesting:Behavior needs documentation. + +**Dependencies:** + +.. todo:: ApplicationTesting:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: ApplicationTesting:Simple example needs documentation. diff --git a/doc/JobTemplate/ArtifactCleanUp.rst b/doc/JobTemplate/Cleanup/ArtifactCleanup.rst similarity index 99% rename from doc/JobTemplate/ArtifactCleanUp.rst rename to doc/JobTemplate/Cleanup/ArtifactCleanup.rst index c02b83d..09c92a3 100644 --- a/doc/JobTemplate/ArtifactCleanUp.rst +++ b/doc/JobTemplate/Cleanup/ArtifactCleanup.rst @@ -27,7 +27,7 @@ The simplest variant just uses the artifact name for the package. jobs: ArtifactCleanUp: - uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r0 + uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r5 with: package: Package @@ -39,7 +39,7 @@ Complex Example jobs: ArtifactCleanUp: - uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r0 + uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r5 needs: - Params - UnitTesting diff --git a/doc/JobTemplate/Cleanup/IntermediateCleanup.rst b/doc/JobTemplate/Cleanup/IntermediateCleanup.rst new file mode 100644 index 0000000..c025637 --- /dev/null +++ b/doc/JobTemplate/Cleanup/IntermediateCleanup.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/IntermediateCleanUp: + +IntermediateCleanUp +################### + +.. todo:: IntermediateCleanUp:Needs documentation. + +**Behavior:** + +.. todo:: IntermediateCleanUp:Behavior needs documentation. + +**Dependencies:** + +.. todo:: IntermediateCleanUp:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: IntermediateCleanUp:Simple example needs documentation. diff --git a/doc/JobTemplate/Cleanup/index.rst b/doc/JobTemplate/Cleanup/index.rst new file mode 100644 index 0000000..6a97c99 --- /dev/null +++ b/doc/JobTemplate/Cleanup/index.rst @@ -0,0 +1,28 @@ +.. _JOBTMPL/Cleanup: + +Cleanup +####### + +The category *cleanup* provides workflow templates implementing artifact cleanups (removals) from pipelines. + +Running lots of unit testing, platform testing and application testing variants (operating system |times| Python version +|times| environment) creates dozens to hundrets of artifacts (unit test report, code coverage report, ...). This +consumes pipeline storage which can be freed up. Moreover, it's unclear which artifacts contain the final unit test and +code coverage reports. Thus, it's benefitial, to remove intermediate artifacts after merging reports into one summary +report. + +.. topic:: Intermediate cleanups + + * :ref:`JOBTMPL/IntermediateCleanup` - remove intermediate artifacts after merging reports into one summary report. + + +.. topic:: Final cleanups + + * :ref:`JOBTMPL/ArtifactCleanup` - remove artifacts after publising results and creating release assets. + + +.. toctree:: + :hidden: + + IntermediateCleanup + ArtifactCleanup diff --git a/doc/JobTemplate/BuildTheDocs.rst b/doc/JobTemplate/Deprecated/BuildTheDocs.rst similarity index 100% rename from doc/JobTemplate/BuildTheDocs.rst rename to doc/JobTemplate/Deprecated/BuildTheDocs.rst diff --git a/doc/JobTemplate/CoverageCollection.rst b/doc/JobTemplate/Deprecated/CoverageCollection.rst similarity index 100% rename from doc/JobTemplate/CoverageCollection.rst rename to doc/JobTemplate/Deprecated/CoverageCollection.rst diff --git a/doc/JobTemplate/Deprecated/NightlyRelease.rst b/doc/JobTemplate/Deprecated/NightlyRelease.rst new file mode 100644 index 0000000..54e850a --- /dev/null +++ b/doc/JobTemplate/Deprecated/NightlyRelease.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/NightlyRelease: + +NightlyRelease +############## + +.. todo:: NightlyRelease:Needs documentation. + +**Behavior:** + +.. todo:: NightlyRelease:Behavior needs documentation. + +**Dependencies:** + +.. todo:: NightlyRelease:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: NightlyRelease:Simple example needs documentation. diff --git a/doc/JobTemplate/Deprecated/index.rst b/doc/JobTemplate/Deprecated/index.rst new file mode 100644 index 0000000..f541957 --- /dev/null +++ b/doc/JobTemplate/Deprecated/index.rst @@ -0,0 +1,12 @@ +.. _JOBTMPL/Deprecated: + +Deprecated +########## + + +.. toctree:: + :hidden: + + CoverageCollection + NightlyRelease + BuildTheDocs diff --git a/doc/JobTemplate/Documentation/CheckDocumentation.rst b/doc/JobTemplate/Documentation/CheckDocumentation.rst new file mode 100644 index 0000000..dc8dab0 --- /dev/null +++ b/doc/JobTemplate/Documentation/CheckDocumentation.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/CheckDocumentation: + +CheckDocumentation +################## + +.. todo:: CheckDocumentation:Behavior needs documentation. + +**Behavior:** + +.. todo:: CheckDocumentation:Behavior needs documentation. + +**Dependencies:** + +.. todo:: CheckDocumentation:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: CheckDocumentation:Simple example needs documentation. diff --git a/doc/JobTemplate/Documentation/LaTeXDocumentation.rst b/doc/JobTemplate/Documentation/LaTeXDocumentation.rst new file mode 100644 index 0000000..375c238 --- /dev/null +++ b/doc/JobTemplate/Documentation/LaTeXDocumentation.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/LatexDocumentation: + +LatexDocumentation +################## + +.. todo:: LatexDocumentation:Needs documentation. + +**Behavior:** + +.. todo:: LatexDocumentation:Behavior needs documentation. + +**Dependencies:** + +.. todo:: LatexDocumentation:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: LatexDocumentation:Simple example needs documentation. diff --git a/doc/JobTemplate/Documentation/SphinxDocumentation.rst b/doc/JobTemplate/Documentation/SphinxDocumentation.rst new file mode 100644 index 0000000..bf99758 --- /dev/null +++ b/doc/JobTemplate/Documentation/SphinxDocumentation.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/SphinxDocumentation: + +SphinxDocumentation +################### + +.. todo:: SphinxDocumentation:Needs documentation. + +**Behavior:** + +.. todo:: SphinxDocumentation:Behavior needs documentation. + +**Dependencies:** + +.. todo:: SphinxDocumentation:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: SphinxDocumentation:Simple example needs documentation. diff --git a/doc/JobTemplate/VerifyDocs.rst b/doc/JobTemplate/Documentation/VerifyDocs.rst similarity index 94% rename from doc/JobTemplate/VerifyDocs.rst rename to doc/JobTemplate/Documentation/VerifyDocs.rst index 9ce0438..535021a 100644 --- a/doc/JobTemplate/VerifyDocs.rst +++ b/doc/JobTemplate/Documentation/VerifyDocs.rst @@ -1,4 +1,4 @@ -.. _JOBTMPL/VerifyDocumentation: +.. _JOBTMPL/VerifyDocs: VerifyDocs ########## diff --git a/doc/JobTemplate/Documentation/index.rst b/doc/JobTemplate/Documentation/index.rst new file mode 100644 index 0000000..7e86deb --- /dev/null +++ b/doc/JobTemplate/Documentation/index.rst @@ -0,0 +1,15 @@ +.. _JOBTMPL/Documentation: + +Documentation +############# + +The category *documentation* provides workflow templates implementing + + +.. toctree:: + :hidden: + + VerifyDocs + CheckDocumentation + LaTeXDocumentation + SphinxDocumentation diff --git a/doc/JobTemplate/Global/ExtractConfiguration.rst b/doc/JobTemplate/Global/ExtractConfiguration.rst new file mode 100644 index 0000000..612817e --- /dev/null +++ b/doc/JobTemplate/Global/ExtractConfiguration.rst @@ -0,0 +1,40 @@ +.. _JOBTMPL/ExtractConfiguration: + +ExtractConfiguration +#################### + +The ``ExtractConfiguration`` job template is a workaround for the limitations of GitHub Actions to handle global variables in +GitHub Actions workflows (see `actions/runner#480 `__. + +It generates output parameters with artifact names and a job matrix to be used in later running jobs. + +**Behavior:** + +.. todo:: Parameters:Behavior Needs documentation. + +**Dependencies:** + +*None* + +Instantiation +************* + +Simple Example +============== + +The following instantiation example creates a job `Params` derived from job template `Parameters` version `r0`. It only +requires a `name` parameter to create the artifact names. + +.. code-block:: yaml + + name: Pipeline + + on: + push: + workflow_dispatch: + + jobs: + Params: + uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r0 + with: + name: pyTooling diff --git a/doc/JobTemplate/Parameters.rst b/doc/JobTemplate/Global/Parameters.rst similarity index 100% rename from doc/JobTemplate/Parameters.rst rename to doc/JobTemplate/Global/Parameters.rst diff --git a/doc/JobTemplate/Global/PrepareJob.rst b/doc/JobTemplate/Global/PrepareJob.rst new file mode 100644 index 0000000..3169722 --- /dev/null +++ b/doc/JobTemplate/Global/PrepareJob.rst @@ -0,0 +1,40 @@ +.. _JOBTMPL/PrepareJob: + +PrepareJob +########## + +The ``PrepareJob`` job template is a workaround for the limitations of GitHub Actions to handle global variables in +GitHub Actions workflows (see `actions/runner#480 `__. + +It generates output parameters with artifact names and a job matrix to be used in later running jobs. + +**Behavior:** + +.. todo:: Parameters:Behavior Needs documentation. + +**Dependencies:** + +*None* + +Instantiation +************* + +Simple Example +============== + +The following instantiation example creates a job `Params` derived from job template `Parameters` version `r0`. It only +requires a `name` parameter to create the artifact names. + +.. code-block:: yaml + + name: Pipeline + + on: + push: + workflow_dispatch: + + jobs: + Params: + uses: pyTooling/Actions/.github/workflows/PrepareJob.yml@r0 + with: + name: pyTooling diff --git a/doc/JobTemplate/Global/index.rst b/doc/JobTemplate/Global/index.rst new file mode 100644 index 0000000..076216b --- /dev/null +++ b/doc/JobTemplate/Global/index.rst @@ -0,0 +1,21 @@ +.. _JOBTMPL/Global: + +Global +###### + +The category *global* provides workflow templates implementing preparation steps suitable for every pipeline. + +* :ref:`JOBTMPL/Parameters` - Compute a matrix of (operating system |times| Python version |times| environment) + combinations for unit testing, platform testing or application testing and provide the result as a JSON string via + pipeline outputs. +* :ref:`JOBTMPL/PrepareJob` - Check GitHub Action environment variables and commits to provide precomputed variables as + pipeline outputs. +* :ref:`JOBTMPL/ExtractConfiguration` - Extract configuration settings from :file:`pyproject.toml` and provide settings + as pipeline outputs. + +.. toctree:: + :hidden: + + PrepareJob + Parameters + ExtractConfiguration diff --git a/doc/JobTemplate/InstallPackage.rst b/doc/JobTemplate/InstallPackage.rst new file mode 100644 index 0000000..9bcf3c0 --- /dev/null +++ b/doc/JobTemplate/InstallPackage.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/InstallPackage: + +InstallPackage +############## + +.. todo:: InstallPackage:Needs documentation. + +**Behavior:** + +.. todo:: InstallPackage:Behavior needs documentation. + +**Dependencies:** + +.. todo:: InstallPackage:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: InstallPackage:Simple example needs documentation. diff --git a/doc/JobTemplate/PublishCoverageResults.rst b/doc/JobTemplate/PublishCoverageResults.rst new file mode 100644 index 0000000..124aeb2 --- /dev/null +++ b/doc/JobTemplate/PublishCoverageResults.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/PublishCoverageResults: + +PublishCoverageResults +###################### + +.. todo:: PublishCoverageResults:Needs documentation. + +**Behavior:** + +.. todo:: PublishCoverageResults:Behavior needs documentation. + +**Dependencies:** + +.. todo:: PublishCoverageResults:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: PublishCoverageResults:Simple example needs documentation. diff --git a/doc/JobTemplate/PublishOnPyPI.rst b/doc/JobTemplate/PublishOnPyPI.rst index 0bad1ed..747be44 100644 --- a/doc/JobTemplate/PublishOnPyPI.rst +++ b/doc/JobTemplate/PublishOnPyPI.rst @@ -1,4 +1,4 @@ -.. _JOBTMPL/PyPI: +.. _JOBTMPL/PublishOnPyPI: PublishOnPyPI ############# diff --git a/doc/JobTemplate/Release.rst b/doc/JobTemplate/PublishReleaseNotes.rst similarity index 94% rename from doc/JobTemplate/Release.rst rename to doc/JobTemplate/PublishReleaseNotes.rst index 149ea0d..4a3184c 100644 --- a/doc/JobTemplate/Release.rst +++ b/doc/JobTemplate/PublishReleaseNotes.rst @@ -1,7 +1,7 @@ -.. _JOBTMPL/GitHubReleasePage: +.. _JOBTMPL/PublishReleaseNotes: -Release -####### +PublishReleaseNotes +################### This job creates a Release Page on GitHub. diff --git a/doc/JobTemplate/TagReleaseCommit.rst b/doc/JobTemplate/TagReleaseCommit.rst new file mode 100644 index 0000000..5371dbe --- /dev/null +++ b/doc/JobTemplate/TagReleaseCommit.rst @@ -0,0 +1,22 @@ +.. _JOBTMPL/TagReleaseCommit: + +TagReleaseCommit +################ + +.. todo:: TagReleaseCommit:Needs documentation. + +**Behavior:** + +.. todo:: TagReleaseCommit:Behavior needs documentation. + +**Dependencies:** + +.. todo:: TagReleaseCommit:Dependencies needs documentation. + +Instantiation +************* + +Simple Example +============== + +.. todo:: TagReleaseCommit:Simple example needs documentation. diff --git a/doc/JobTemplate/index.rst b/doc/JobTemplate/index.rst index bf835e4..145e0e7 100644 --- a/doc/JobTemplate/index.rst +++ b/doc/JobTemplate/index.rst @@ -4,45 +4,84 @@ Overview ######## The following list categorizes all pre-defined job templates, which can be instantiated in a pipeline (GitHub Action -Workflow). They can also serve as an example for creating or driving own job templates. +Workflow). They can also serve as an example for creating or deriving own job templates. -**Table of Contents:** +.. grid:: 5 -.. hlist:: - :columns: 2 + .. grid-item:: + :columns: 2 - * **Global Templates** + .. rubric:: All-In-One Templates - * :ref:`JOBTMPL/Parameters` + * :ref:`JOBTMPL/CompletePipeline` - * **Unit Tests, Code Coverage, Code Quality, ...** + .. rubric:: Global Templates - * :ref:`JOBTMPL/UnitTesting` - * :ref:`JOBTMPL/CodeCoverage` - * :ref:`JOBTMPL/StaticTypeChecking` - * *code formatting (planned)* - * *coding style (planned)* - * *code linting (planned)* + * :ref:`JOBTMPL/Parameters` + * :ref:`JOBTMPL/PrepareJob` + * :ref:`JOBTMPL/ExtractConfiguration` - * **Build and Packaging** + .. grid-item:: + :columns: 2 - * :ref:`JOBTMPL/Package` + .. rubric:: Documentation - * **Documentation** + * :ref:`JOBTMPL/CheckDocumentation` + * :ref:`JOBTMPL/VerifyDocs` + * :ref:`JOBTMPL/SphinxDocumentation` + * :ref:`JOBTMPL/LaTeXDocumentation` - * :ref:`JOBTMPL/VerifyDocumentation` - * :ref:`JOBTMPL/BuildTheDocs` + .. rubric:: Unit Tests, Code Coverage - * **Releasing, Publishing** + * :ref:`JOBTMPL/ApplicationTesting` + * :ref:`JOBTMPL/UnitTesting` - * :ref:`JOBTMPL/GitHubReleasePage` - * :ref:`JOBTMPL/PyPI` - * :ref:`JOBTMPL/PublishTestResults` - * :ref:`JOBTMPL/PublishToGitHubPages` + .. grid-item:: + :columns: 2 - * **Cleanups** + .. rubric:: Code Quality - * :ref:`JOBTMPL/ArtifactCleanup` + * :ref:`JOBTMPL/StaticTypeChecking` + * *code formatting (planned)* + * *coding style (planned)* + * *code linting (planned)* + + .. rubric:: Build and Packaging + + * :ref:`JOBTMPL/Package` + * :ref:`JOBTMPL/InstallPackage` + + .. grid-item:: + :columns: 2 + + .. rubric:: Publishing + + * :ref:`JOBTMPL/PublishOnPyPI` + * :ref:`JOBTMPL/PublishTestResults` + * :ref:`JOBTMPL/PublishCoverageResults` + * :ref:`JOBTMPL/PublishToGitHubPages` + + .. rubric:: Releasing + + * :ref:`JOBTMPL/PublishReleaseNotes` + * :ref:`JOBTMPL/TagReleaseCommit` + + .. grid-item:: + :columns: 2 + + .. rubric:: Cleanup Templates + + * :ref:`JOBTMPL/IntermediateCleanup` + * :ref:`JOBTMPL/ArtifactCleanup` + + .. grid-item:: + :columns: 2 + + .. rubric:: :ref:`JOBTMPL/Deprecated` + + * :ref:`JOBTMPL/CodeCoverage` + * :ref:`JOBTMPL/NightlyRelease` + * :ref:`JOBTMPL/BuildTheDocs` Instantiation diff --git a/doc/_static/css/override.css b/doc/_static/css/override.css index 27407d4..2706063 100644 --- a/doc/_static/css/override.css +++ b/doc/_static/css/override.css @@ -113,3 +113,11 @@ section > p, padding-left: 0; padding-right: 0; } + +.sd-container-fluid > .sd-row > .sd-col > p.rubric { + margin-bottom: 6px; +} + +.sd-container-fluid > .sd-row > .sd-col > ul.simple { + margin-bottom: 0px; +} diff --git a/doc/_static/pyTooling-Actions-CompletePipeline.png b/doc/_static/pyTooling-Actions-CompletePipeline.png new file mode 100644 index 0000000..ae87468 Binary files /dev/null and b/doc/_static/pyTooling-Actions-CompletePipeline.png differ diff --git a/doc/_static/pyTooling-Actions-SimplePackage.png b/doc/_static/pyTooling-Actions-SimplePackage.png index f0ee4d8..3e66d23 100644 Binary files a/doc/_static/pyTooling-Actions-SimplePackage.png and b/doc/_static/pyTooling-Actions-SimplePackage.png differ diff --git a/doc/conf.py b/doc/conf.py index e386788..2b2071f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -260,28 +260,28 @@ todo_link_only = True # ============================================================================== # sphinx-reports # ============================================================================== -# report_unittest_testsuites = { -# "src": { -# "name": f"{pythonProject}", -# "xml_report": "../report/unit/unittest.xml", -# } -# } -# report_codecov_packages = { -# "src": { -# "name": f"{pythonProject}", -# "json_report": "../report/coverage/coverage.json", -# "fail_below": 80, -# "levels": "default" -# } -# } -# report_doccov_packages = { -# "src": { -# "name": f"{pythonProject}", -# "directory": f"../{directoryName}", -# "fail_below": 80, -# "levels": "default" -# } -# } +report_unittest_testsuites = { + "src": { + "name": f"{pythonProject}", + "xml_report": "../report/unit/unittest.xml", + } +} +report_codecov_packages = { + "src": { + "name": f"{pythonProject}", + "json_report": "../report/coverage/coverage.json", + "fail_below": 80, + "levels": "default" + } +} +report_doccov_packages = { + "src": { + "name": f"{pythonProject}", + "directory": f"../{directoryName}", + "fail_below": 80, + "levels": "default" + } +} # ============================================================================== diff --git a/doc/index.rst b/doc/index.rst index 0de97bd..4785c92 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -41,41 +41,82 @@ GitHub Action Job Templates The following list categorizes all pre-defined job templates, which can be instantiated in a pipeline (GitHub Action Workflow): -.. hlist:: - :columns: 2 +.. grid:: 5 - * **Global Templates** + .. grid-item:: + :columns: 2 - * :ref:`JOBTMPL/Parameters` + .. rubric:: All-In-One Templates - * **Unit Tests, Code Coverage, Code Quality, ...** + * :ref:`JOBTMPL/CompletePipeline` - * :ref:`JOBTMPL/UnitTesting` - * :ref:`JOBTMPL/CodeCoverage` - * :ref:`JOBTMPL/StaticTypeChecking` - * *code formatting (planned)* - * *coding style (planned)* - * *code linting (planned)* + .. rubric:: Global Templates - * **Build and Packaging** + * :ref:`JOBTMPL/Parameters` + * :ref:`JOBTMPL/PrepareJob` + * :ref:`JOBTMPL/ExtractConfiguration` - * :ref:`JOBTMPL/Package` + .. grid-item:: + :columns: 2 - * **Documentation** + .. rubric:: Documentation - * :ref:`JOBTMPL/VerifyDocumentation` - * :ref:`JOBTMPL/BuildTheDocs` + * :ref:`JOBTMPL/CheckDocumentation` + * :ref:`JOBTMPL/VerifyDocs` + * :ref:`JOBTMPL/SphinxDocumentation` + * :ref:`JOBTMPL/LaTeXDocumentation` - * **Releasing, Publishing** + .. rubric:: Unit Tests, Code Coverage - * :ref:`JOBTMPL/GitHubReleasePage` - * :ref:`JOBTMPL/PyPI` - * :ref:`JOBTMPL/PublishTestResults` - * :ref:`JOBTMPL/PublishToGitHubPages` + * :ref:`JOBTMPL/ApplicationTesting` + * :ref:`JOBTMPL/UnitTesting` - * **Cleanups** + .. grid-item:: + :columns: 2 - * :ref:`JOBTMPL/ArtifactCleanup` + .. rubric:: Code Quality + + * :ref:`JOBTMPL/StaticTypeChecking` + * *code formatting (planned)* + * *coding style (planned)* + * *code linting (planned)* + + .. rubric:: Build and Packaging + + * :ref:`JOBTMPL/Package` + * :ref:`JOBTMPL/InstallPackage` + + .. grid-item:: + :columns: 2 + + .. rubric:: Publishing + + * :ref:`JOBTMPL/PublishOnPyPI` + * :ref:`JOBTMPL/PublishTestResults` + * :ref:`JOBTMPL/PublishCoverageResults` + * :ref:`JOBTMPL/PublishToGitHubPages` + + .. rubric:: Releasing + + * :ref:`JOBTMPL/PublishReleaseNotes` + * :ref:`JOBTMPL/TagReleaseCommit` + + .. grid-item:: + :columns: 2 + + .. rubric:: Cleanup Templates + + * :ref:`JOBTMPL/IntermediateCleanup` + * :ref:`JOBTMPL/ArtifactCleanup` + + .. grid-item:: + :columns: 2 + + .. rubric:: :ref:`JOBTMPL/Deprecated` + + * :ref:`JOBTMPL/CodeCoverage` + * :ref:`JOBTMPL/NightlyRelease` + * :ref:`JOBTMPL/BuildTheDocs` Example Pipelines @@ -155,18 +196,22 @@ License :hidden: JobTemplate/index - JobTemplate/Parameters - JobTemplate/CoverageCollection + JobTemplate/AllInOne/index + JobTemplate/Global/index + JobTemplate/Documentation/index JobTemplate/UnitTesting + JobTemplate/ApplicationTesting JobTemplate/StaticTypeCheck JobTemplate/PublishTestResults + JobTemplate/PublishCoverageResults JobTemplate/Package + JobTemplate/InstallPackage JobTemplate/PublishOnPyPI - JobTemplate/VerifyDocs - JobTemplate/BuildTheDocs JobTemplate/PublishToGitHubPages - JobTemplate/Release - JobTemplate/ArtifactCleanUp + JobTemplate/TagReleaseCommit + JobTemplate/PublishReleaseNotes + JobTemplate/Cleanup/index + JobTemplate/Deprecated/index .. raw:: latex @@ -179,6 +224,7 @@ License pyDummy/pyDummy unittests/index coverage/index + CodeCoverage Doc. Coverage Report Static Type Check Report ➚