Document all recently added workflow templates.

This commit is contained in:
Patrick Lehmann
2025-08-18 23:24:05 +02:00
parent c78cb4062f
commit a2db5ec238
32 changed files with 651 additions and 83 deletions

View File

@@ -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 <https://github.com/actions/runner/issues/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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -0,0 +1,12 @@
.. _JOBTMPL/Deprecated:
Deprecated
##########
.. toctree::
:hidden:
CoverageCollection
NightlyRelease
BuildTheDocs

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,4 +1,4 @@
.. _JOBTMPL/VerifyDocumentation:
.. _JOBTMPL/VerifyDocs:
VerifyDocs
##########

View File

@@ -0,0 +1,15 @@
.. _JOBTMPL/Documentation:
Documentation
#############
The category *documentation* provides workflow templates implementing
.. toctree::
:hidden:
VerifyDocs
CheckDocumentation
LaTeXDocumentation
SphinxDocumentation

View File

@@ -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 <https://github.com/actions/runner/issues/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

View File

@@ -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 <https://github.com/actions/runner/issues/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

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -1,4 +1,4 @@
.. _JOBTMPL/PyPI:
.. _JOBTMPL/PublishOnPyPI:
PublishOnPyPI
#############

View File

@@ -1,7 +1,7 @@
.. _JOBTMPL/GitHubReleasePage:
.. _JOBTMPL/PublishReleaseNotes:
Release
#######
PublishReleaseNotes
###################
This job creates a Release Page on GitHub.

View File

@@ -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.

View File

@@ -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