CompletePipeline
The CompletePipeline
job template is the combination of almost all job templates offered by pyTooling/Actions in a
single workflow template. If fulfills all needs to test, package, document, publish and release Python code from GitHub.
It can be used for simple Python packages as well as namespace packages.
Instantiation
The following instantiation example creates a Params
job derived from job template Parameters
version @r5
.
It only requires a name parameter to create the artifact names.
name: Pipeline
on:
push:
workflow_dispatch:
jobs:
Params:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5
with:
package_name: myPackage
Parameter Summary
Goto input parameters
Parameter Name |
Required |
Type |
Default |
---|---|---|---|
no |
string |
|
|
yes |
string |
— — — — |
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
|
no |
string |
|
Goto secrets
Token Name |
Required |
Type |
Default |
---|---|---|---|
no |
string |
— — — — |
|
no |
string |
— — — — |
|
no |
string |
— — — — |
Goto output parameters
This job template has no output parameters.
Input Parameters
package_namespace
- Type:
string
- Required:
no
- Default Value:
''
- Possible Values:
Any valid Python namespace.
- Description:
In case the package is a Python namespace package, the name of the library’s or package’s namespace needs to be specified using this parameter.
In case of a simple Python package, this parameter must be specified as an empty string (''
), which is the default.- Example:
Example Instantiation
name: Pipeline jobs: NamespacePackage: uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5 with: package_namespace: myFramework package_name: Extension
Example Directory Structure
📂ProjectRoot/ 📂myFramework/ 📂Extension/ 📦SubPackage/ 🐍__init__.py 🐍SubModuleA.py 🐍__init__.py 🐍ModuleB.py
package_name
- Type:
string
- Required:
yes
- Default Value:
— — — —
- Possible Values:
Any valid Python package name.
- Description:
In case of a simple Python package, this package’s name is specified using this parameter.
In case the package is a Python namespace package, the parameter package_namespace must be specified, too.- Example:
Example Instantiation
name: Pipeline jobs: SimplePackage: uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5 with: package_name: myPackage
Example Directory Structure
📂ProjectRoot/ 📂myFramework/ 📦SubPackage/ 🐍__init__.py 🐍SubModuleA.py 🐍__init__.py 🐍ModuleB.py
unittest_python_version
- Type:
string
- Required:
no
- Default Value:
'3.13'
- Possible Values:
Any valid Python version conforming to the pattern
<major>.<minor>
orpypy-<major>.<minor>
.
See actions/python-versions - available Python versions and actions/setup-python - configurable Python versions.- Description:
The default Python version used for intermediate jobs using Python tools.
In case unittest_python_version_list is empty, this default version is used to populate the unittest_python_version_list parameter.
unittest_python_version_list
- Type:
string
- Required:
no
- Default Value:
'3.9 3.10 3.11 3.12 3.13'
- Possible Values:
A space separated list of valid Python versions conforming to the pattern
<major>.<minor>
orpypy-<major>.<minor>
.- Description:
The list of space-separated Python versions used for unit testing.
Possible values
3.8
,3.9
,3.10
,3.11
,3.12
,3.13
,3.14
pypy-3.7
,pypy-3.8
,pypy-3.9
,pypy-3.10
,pypy-3.11
Icon
Version
Maintained until
Comments
⚫
3.8
2024.10
outdated
🔴
3.9
2025.10
🟠
3.10
2026.10
🟡
3.11
2027.10
🟢
3.12
2028.10
🟢
3.13
2029.10
latest CPython
🟣
3.14
2030.10
Python 3.14 alpha, beta (or RC) will be used.
⟲⚫
pypy-3.7
????.??
⟲⚫
pypy-3.8
????.??
⟲🔴
pypy-3.9
????.??
⟲🟠
pypy-3.10
????.??
⟲🟡
pypy-3.11
????.??
latest PyPy
unittest_system_list
- Type:
string
- Required:
no
- Default Value:
'ubuntu windows macos macos-arm mingw64 ucrt64'
- Possible Values:
A space separated list of system names.
- Description:
The list of space-separated systems used for unit testing.
Possible values
Native systems:
ubuntu
,windows
,macos
MSYS2:
msys
,mingw32
,mingw64
,clang32
,clang64
,ucrt64
Icon
System
Used version
Comments
🪟
Windows
Windows Server 2025 (latest)
🐧
Ubuntu
Ubuntu 24.04 (LTS) (latest)
🍎
macOS
macOS Ventura 13 (latest)
While this marked latest, macOS Ventura 13 is already provided.
🍏
macOS-arm
macOS Sonoma 14 (latest)
While this marked latest, macOS Ventura 13 is already provided.
🟪
MSYS
⬛
MinGW32
🟦
MinGW64
🟫
Clang32
🟧
Clang64
🟨
UCRT64
Source: Images provided by GitHub
unittest_include_list
- Type:
string
- Required:
no
- Default Value:
''
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
unittest_exclude_list
- Type:
string
- Required:
no
- Default Value:
'windows-arm:3.9 windows-arm:3.10'
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
unittest_disable_list
- Type:
string
- Required:
no
- Default Value:
'windows-arm:pypy-3.10 windows-arm:pypy-3.11'
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
apptest_python_version
- Type:
string
- Required:
no
- Default Value:
'3.13'
- Possible Values:
Any valid Python version conforming to the pattern
<major>.<minor>
orpypy-<major>.<minor>
.
See actions/python-versions - available Python versions and actions/setup-python - configurable Python versions.- Description:
The default Python version used for intermediate jobs using Python tools.
In case apptest_python_version_list is empty, this default version is used to populate the apptest_python_version_list parameter.
apptest_python_version_list
- Type:
string
- Required:
no
- Default Value:
''
- Possible Values:
A space separated list of valid Python versions conforming to the pattern
<major>.<minor>
orpypy-<major>.<minor>`
.- Description:
The list of space-separated Python versions used for application testing.
As this list is empty by default, the value is derived from apptest_python_version.
Possible values
3.8
,3.9
,3.10
,3.11
,3.12
,3.13
,3.14
pypy-3.7
,pypy-3.8
,pypy-3.9
,pypy-3.10
,pypy-3.11
Icon
Version
Maintained until
Comments
⚫
3.8
2024.10
outdated
🔴
3.9
2025.10
🟠
3.10
2026.10
🟡
3.11
2027.10
🟢
3.12
2028.10
🟢
3.13
2029.10
latest CPython
🟣
3.14
2030.10
Python 3.14 alpha, beta (or RC) will be used.
⟲⚫
pypy-3.7
????.??
⟲⚫
pypy-3.8
????.??
⟲🔴
pypy-3.9
????.??
⟲🟠
pypy-3.10
????.??
⟲🟡
pypy-3.11
????.??
latest PyPy
apptest_system_list
- Type:
string
- Required:
no
- Default Value:
'ubuntu windows macos macos-arm mingw64 ucrt64'
- Possible Values:
A space separated list of system names.
- Description:
The list of space-separated systems used for application testing.
Possible values
Native systems:
ubuntu
,windows
,macos
MSYS2:
msys
,mingw32
,mingw64
,clang32
,clang64
,ucrt64
Icon
System
Used version
Comments
🪟
Windows
Windows Server 2025 (latest)
🐧
Ubuntu
Ubuntu 24.04 (LTS) (latest)
🍎
macOS
macOS Ventura 13 (latest)
While this marked latest, macOS Ventura 13 is already provided.
🍏
macOS-arm
macOS Sonoma 14 (latest)
While this marked latest, macOS Ventura 13 is already provided.
🟪
MSYS
⬛
MinGW32
🟦
MinGW64
🟫
Clang32
🟧
Clang64
🟨
UCRT64
Source: Images provided by GitHub
apptest_include_list
- Type:
string
- Required:
no
- Default Value:
''
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
apptest_exclude_list
- Type:
string
- Required:
no
- Default Value:
'windows-arm:3.9 windows-arm:3.10'
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
apptest_disable_list
- Type:
string
- Required:
no
- Default Value:
'windows-arm:pypy-3.10 windows-arm:pypy-3.11'
- Possible Values:
A space separated list of
<system>:<python_version>
tuples.- Description:
codecov
- Type:
string
- Required:
no
- Default Value:
'false'
- Possible Values:
'true'
,'false'
- Description:
codacy
- Type:
string
- Required:
no
- Default Value:
'false'
- Possible Values:
'true'
,'false'
- Description:
dorny
- Type:
string
- Required:
no
- Default Value:
'false'
- Possible Values:
'true'
,'false'
- Description:
cleanup
- Type:
string
- Required:
no
- Default Value:
'true'
- Possible Values:
'true'
,'false'
- Description:
Secrets
The workflow template uses the following secrets to publish results to other services.
PYPI_TOKEN
- Type:
string
- Required:
no
- Default Value:
— — — —
- Description:
The token to publish and upload packages on PyPI.
CODECOV_TOKEN
- Type:
string
- Required:
no
- Default Value:
— — — —
- Description:
The token to publish code coverage and unit test results to CodeCov.
CODACY_TOKEN
- Type:
string
- Required:
no
- Default Value:
— — — —
- Description:
The token to publish code coverage results to Codacy.
Outputs
This job template has no output parameters.
Optimizations
The following optimizations can be used to reduce the template’s runtime.
- TBD
tbd tbd tbd