Updated CompletePipeline.

This commit is contained in:
Patrick Lehmann
2025-08-23 01:09:58 +02:00
parent 4f49964e57
commit 6d75b849f5
4 changed files with 415 additions and 381 deletions

View File

@@ -155,6 +155,7 @@ It can be used for simple Python packages as well as namespace packages.
* :ref:`pyTooling/Actions/.github/workflows/PrepareJob.yml <JOBTMPL/PrepareJob>` * :ref:`pyTooling/Actions/.github/workflows/PrepareJob.yml <JOBTMPL/PrepareJob>`
* :gh:`actions/checkout` * :gh:`actions/checkout`
* :gh:`GitHub command line tool 'gh' <cli/cli>`
* :ref:`pyTooling/Actions/.github/workflows/Parameters.yml <JOBTMPL/Parameters>` * :ref:`pyTooling/Actions/.github/workflows/Parameters.yml <JOBTMPL/Parameters>`
* :ref:`pyTooling/Actions/.github/workflows/ExtractConfiguration.yml <JOBTMPL/ExtractConfiguration>` * :ref:`pyTooling/Actions/.github/workflows/ExtractConfiguration.yml <JOBTMPL/ExtractConfiguration>`
@@ -185,11 +186,8 @@ It can be used for simple Python packages as well as namespace packages.
Instantiation Instantiation
************* *************
Simple Example The following instantiation example creates a job ``Params`` derived from job template ``Parameters`` version ``@r5``.
============== It only requires a `name` parameter to create the artifact names.
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 .. code-block:: yaml
@@ -205,394 +203,381 @@ requires a `name` parameter to create the artifact names.
with: with:
name: pyTooling name: pyTooling
.. _JOBTMPL/CompletePipeline/Parameters: .. _JOBTMPL/CompletePipeline/Parameters:
Parameters Parameter Summary
********** *****************
.. topic:: Parameter Summary .. rubric:: Goto :ref:`input parameters <JOBTMPL/CompletePipeline/Inputs>`
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| Parameter Name | Required | Type | Default | | Parameter Name | Required | Type | Default |
+=====================================================================+==========+==========+==============================================+ +=====================================================================+==========+==========+==============================================+
| :ref:`JOBTMPL/CompletePipeline/Param/package_namespace` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/package_namespace` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/package_name` | yes | string | — — — — | | :ref:`JOBTMPL/CompletePipeline/Input/package_name` | yes | string | — — — — |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_python_version` | no | string | ``'3.13'`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_python_version` | no | string | ``'3.13'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_python_version_list` | no | string | ``'3.9 3.10 3.11 3.12 3.13'`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_python_version_list` | no | string | ``'3.9 3.10 3.11 3.12 3.13'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_system_list` | no | string | ``'ubuntu windows macos macos-arm ucrt64'`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_system_list` | no | string | ``'ubuntu windows macos macos-arm ucrt64'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_include_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_include_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_exclude_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_exclude_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/unittest_disable_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/unittest_disable_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_python_version` | no | string | ``'3.13'`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_python_version` | no | string | ``'3.13'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_python_version_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_python_version_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_system_list` | no | string | ``'ubuntu windows macos macos-arm ucrt64'`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_system_list` | no | string | ``'ubuntu windows macos macos-arm ucrt64'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_include_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_include_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_exclude_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_exclude_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/apptest_disable_list` | no | string | ``''`` | | :ref:`JOBTMPL/CompletePipeline/Input/apptest_disable_list` | no | string | ``''`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/codecov` | no | string | ``'false'`` | | :ref:`JOBTMPL/CompletePipeline/Input/codecov` | no | string | ``'false'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/codacy` | no | string | ``'false'`` | | :ref:`JOBTMPL/CompletePipeline/Input/codacy` | no | string | ``'false'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/dorny` | no | string | ``'false'`` | | :ref:`JOBTMPL/CompletePipeline/Input/dorny` | no | string | ``'false'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
| :ref:`JOBTMPL/CompletePipeline/Param/cleanup` | no | string | ``'true'`` | | :ref:`JOBTMPL/CompletePipeline/Input/cleanup` | no | string | ``'true'`` |
+---------------------------------------------------------------------+----------+----------+----------------------------------------------+ +---------------------------------------------------------------------+----------+----------+----------------------------------------------+
.. topic:: :ref:`Secret Summary <JOBTMPL/CompletePipeline/Secrets>` .. rubric:: Goto Goto :ref:`secrets <JOBTMPL/CompletePipeline/Secrets>`
+-----------------------------------------------------------+----------+----------+--------------+ +-----------------------------------------------------------+----------+----------+--------------+
| Token Name | Required | Type | Default | | Token Name | Required | Type | Default |
+===========================================================+==========+==========+==============+ +===========================================================+==========+==========+==============+
| :ref:`JOBTMPL/CompletePipeline/Secret/PYPI_TOKEN` | no | string | — — — — | | :ref:`JOBTMPL/CompletePipeline/Secret/PYPI_TOKEN` | no | string | — — — — |
+-----------------------------------------------------------+----------+----------+--------------+ +-----------------------------------------------------------+----------+----------+--------------+
| :ref:`JOBTMPL/CompletePipeline/Secret/CODECOV_TOKEN` | no | string | — — — — | | :ref:`JOBTMPL/CompletePipeline/Secret/CODECOV_TOKEN` | no | string | — — — — |
+-----------------------------------------------------------+----------+----------+--------------+ +-----------------------------------------------------------+----------+----------+--------------+
| :ref:`JOBTMPL/CompletePipeline/Secret/CODACY_TOKEN` | no | string | — — — — | | :ref:`JOBTMPL/CompletePipeline/Secret/CODACY_TOKEN` | no | string | — — — — |
+-----------------------------------------------------------+----------+----------+--------------+ +-----------------------------------------------------------+----------+----------+--------------+
.. topic:: :ref:`Output Summary <JOBTMPL/CompletePipeline/Results>` .. rubric:: Goto Goto :ref:`output parameters <JOBTMPL/CompletePipeline/Outputs>`
This job template has no output parameters. This job template has no output parameters.
.. _JOBTMPL/CompletePipeline/Param/package_namespace: .. _JOBTMPL/CompletePipeline/Inputs:
Input Parameters
****************
.. _JOBTMPL/CompletePipeline/Input/package_namespace:
package_namespace package_namespace
================= =================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| package_namespace | no | string | ``''`` | :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. |br|
In case of a simple Python package, this parameter must be specified as an empty string (``''``),
which is the default.
In case the package is a Python namespace package, the name of the library's or package's namespace needs to be :Example:
specified using this parameter. |br| .. grid:: 2
In case of a simple Python package, this parameter must be specified as an empty string (``''``), which is the default.
.. grid:: 2 .. grid-item::
:columns: 5
.. grid-item:: .. rubric:: Example Instantiation
:columns: 4
.. rubric:: Example .. code-block:: yaml
.. code-block:: yaml name: Pipeline
jobs: jobs:
NamespacePackage: NamespacePackage:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5 uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5
with: with:
package_namespace: myFramework package_namespace: myFramework
package_name: Extension package_name: Extension
.. grid-item:: .. grid-item::
:columns: 4 :columns: 4
.. rubric:: Example .. rubric:: Example Directory Structure
.. code-block:: .. code-block::
📂ProjectRoot/ 📂ProjectRoot/
📂myFramework/ 📂myFramework/
📂Extension/ 📂Extension/
📦SubPackage/ 📦SubPackage/
🐍__init__.py 🐍__init__.py
🐍SubModuleA.py 🐍SubModuleA.py
🐍__init__.py 🐍__init__.py
🐍ModuleB.py 🐍ModuleB.py
.. _JOBTMPL/CompletePipeline/Param/package_name: .. _JOBTMPL/CompletePipeline/Input/package_name:
package_name package_name
============ ============
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: yes
+===============================+==========+==========+==============+ :Default Value: — — — —
| package_name | yes | string | — — — — | :Possible Values: Any valid Python package name.
+-------------------------------+----------+----------+--------------+ :Description: In case of a simple Python package, this package's name is specified using this parameter. |br|
In case the package is a Python namespace package, the parameter
:ref:`JOBTMPL/CompletePipeline/Input/package_namespace` must be specified, too.
:Example:
.. grid:: 2
In case of a simple Python package, this package's name is specified using this parameter. |br| .. grid-item::
In case the package is a Python namespace package, the parameter :ref:`JOBTMPL/CompletePipeline/Param/package_namespace` :columns: 5
must be specified, too.
.. rubric:: Example .. rubric:: Example Instantiation
.. grid:: 2 .. code-block:: yaml
.. grid-item:: name: Pipeline
:columns: 4
.. rubric:: Example jobs:
SimplePackage:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5
with:
package_name: myPackage
.. code-block:: yaml .. grid-item::
:columns: 4
jobs: .. rubric:: Example Directory Structure
SimplePackage:
uses: pyTooling/Actions/.github/workflows/CompletePipeline.yml@r5
with:
package_name: myPackage
.. grid-item:: .. code-block::
:columns: 4
.. rubric:: Example 📂ProjectRoot/
📂myFramework/
📦SubPackage/
🐍__init__.py
🐍SubModuleA.py
🐍__init__.py
🐍ModuleB.py
.. code-block::
📂ProjectRoot/ .. _JOBTMPL/CompletePipeline/Input/unittest_python_version:
📂myFramework/
📦SubPackage/
🐍__init__.py
🐍SubModuleA.py
🐍__init__.py
🐍ModuleB.py
.. _JOBTMPL/CompletePipeline/Param/unittest_python_version:
unittest_python_version unittest_python_version
======================= =======================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'3.13'``
| unittest_python_version | no | string | ``'3.13'`` | :Possible Values: Any valid Python version conforming to the pattern ``major.minor``.
+-------------------------------+----------+----------+--------------+ :Description: The default Python version used for intermediate jobs using Python tools.
The default Python version used for intermediate jobs using Python tools. In case :ref:`JOBTMPL/CompletePipeline/Input/unittest_python_version_list` is empty, this default
version is used to populate the :ref:`JOBTMPL/CompletePipeline/Input/unittest_python_version_list`
In case :ref:`JOBTMPL/CompletePipeline/Param/unittest_python_version_list` is empty, this default version is used to parameter.
populate the ``unittest_python_version_list`` parameter.
.. _JOBTMPL/CompletePipeline/Param/unittest_python_version_list: .. _JOBTMPL/CompletePipeline/Input/unittest_python_version_list:
unittest_python_version_list unittest_python_version_list
============================ ============================
+-------------------------------+----------+----------+-------------------------------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+=====================================+ :Default Value: ``'3.9 3.10 3.11 3.12 3.13'``
| unittest_python_version_list | no | string | ``'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``.
+-------------------------------+----------+----------+-------------------------------------+ :Description: The list of space-separated Python versions used for unit testing.
The list of space-separated Python versions used for unit testing. .. include:: ../PythonVersionList.rst
.. include:: ../PythonVersionList.rst
.. _JOBTMPL/CompletePipeline/Param/unittest_system_list: .. _JOBTMPL/CompletePipeline/Input/unittest_system_list:
unittest_system_list unittest_system_list
==================== ====================
+-------------------------------+----------+----------+-----------------------------------------------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+=====================================================+ :Default Value: ``'ubuntu windows macos macos-arm mingw64 ucrt64'``
| unittest_system_list | no | string | ``'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.
The list of space-separated systems used for unit testing. .. include:: ../SystemList.rst
.. include:: ../SystemList.rst
.. _JOBTMPL/CompletePipeline/Param/unittest_include_list: .. _JOBTMPL/CompletePipeline/Input/unittest_include_list:
unittest_include_list unittest_include_list
===================== =====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| unittest_include_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/unittest_exclude_list: .. _JOBTMPL/CompletePipeline/Input/unittest_exclude_list:
unittest_exclude_list unittest_exclude_list
===================== =====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| unittest_exclude_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/unittest_disable_list: .. _JOBTMPL/CompletePipeline/Input/unittest_disable_list:
unittest_disable_list unittest_disable_list
===================== =====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| unittest_disable_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/apptest_python_version: .. _JOBTMPL/CompletePipeline/Input/apptest_python_version:
apptest_python_version apptest_python_version
====================== ======================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'3.13'``
| apptest_python_version | no | string | ``'3.13'`` | :Possible Values: Any valid Python version conforming to the pattern ``major.minor``.
+-------------------------------+----------+----------+--------------+ :Description: The default Python version used for intermediate jobs using Python tools.
The name of the library or package. In case :ref:`JOBTMPL/CompletePipeline/Input/apptest_python_version_list` is empty, this default
version is used to populate the :ref:`JOBTMPL/CompletePipeline/Input/apptest_python_version_list`
parameter.
.. _JOBTMPL/CompletePipeline/Param/apptest_python_version_list: .. _JOBTMPL/CompletePipeline/Input/apptest_python_version_list:
apptest_python_version_list apptest_python_version_list
=========================== ===========================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| apptest_python_version_list | no | string | ``''`` | :Possible Values: A space separated list of valid Python versions conforming to the pattern ``major.minor``.
+-------------------------------+----------+----------+--------------+ :Description: The list of space-separated Python versions used for application testing.
The name of the library or package. As this list is empty by default, the value is derived from
:ref:`JOBTMPL/CompletePipeline/Input/apptest_python_version`.
.. include:: ../PythonVersionList.rst
.. _JOBTMPL/CompletePipeline/Param/apptest_system_list: .. _JOBTMPL/CompletePipeline/Input/apptest_system_list:
apptest_system_list apptest_system_list
=================== ===================
+-------------------------------+----------+----------+--------------------------------------------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==================================================+ :Default Value: ``'ubuntu windows macos macos-arm mingw64 ucrt64'``
| apptest_system_list | no | string | ``'ubuntu windows macos macos-arm ucrt64'`` | :Possible Values: A space separated list of system names.
+-------------------------------+----------+----------+--------------------------------------------------+ :Description: The list of space-separated systems used for application testing.
The name of the library or package. .. include:: ../SystemList.rst
.. _JOBTMPL/CompletePipeline/Param/apptest_include_list: .. _JOBTMPL/CompletePipeline/Input/apptest_include_list:
apptest_include_list apptest_include_list
==================== ====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| apptest_include_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/apptest_exclude_list: .. _JOBTMPL/CompletePipeline/Input/apptest_exclude_list:
apptest_exclude_list apptest_exclude_list
==================== ====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| apptest_exclude_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/apptest_disable_list: .. _JOBTMPL/CompletePipeline/Input/apptest_disable_list:
apptest_disable_list apptest_disable_list
==================== ====================
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``''``
| apptest_disable_list | no | string | ``''`` | :Possible Values: A space separated list of ``system:python_version`` tuples.
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/codecov: .. _JOBTMPL/CompletePipeline/Input/codecov:
codecov codecov
======= =======
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'false'``
| codecov | no | string | ``'false'`` | :Possible Values: ``'true'``, ``'false'``
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/codacy: .. _JOBTMPL/CompletePipeline/Input/codacy:
codacy codacy
====== ======
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'false'``
| codacy | no | string | ``'false'`` | :Possible Values: ``'true'``, ``'false'``
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/dorny: .. _JOBTMPL/CompletePipeline/Input/dorny:
dorny dorny
===== =====
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'false'``
| dorny | no | string | ``'false'`` | :Possible Values: ``'true'``, ``'false'``
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Param/cleanup: .. _JOBTMPL/CompletePipeline/Input/cleanup:
cleanup cleanup
======= =======
+-------------------------------+----------+----------+--------------+ :Type: string
| Parameter Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: ``'true'``
| cleanup | no | string | ``'true'`` | :Possible Values: ``'true'``, ``'false'``
+-------------------------------+----------+----------+--------------+ :Description:
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Secrets: .. _JOBTMPL/CompletePipeline/Secrets:
@@ -602,18 +587,16 @@ Secrets
The workflow template uses the following secrets to publish results to other services. The workflow template uses the following secrets to publish results to other services.
.. _JOBTMPL/CompletePipeline/Secret/PYPI_TOKEN: .. _JOBTMPL/CompletePipeline/Secret/PYPI_TOKEN:
PYPI_TOKEN PYPI_TOKEN
========== ==========
+-------------------------------+----------+----------+--------------+ :Type: string
| Token Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: — — — —
| PYPI_TOKEN | no | string | — — — — | :Description: The token to publish and upload packages on `PyPI <https://pypi.org/>`__.
+-------------------------------+----------+----------+--------------+
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Secret/CODECOV_TOKEN: .. _JOBTMPL/CompletePipeline/Secret/CODECOV_TOKEN:
@@ -621,13 +604,10 @@ The name of the library or package.
CODECOV_TOKEN CODECOV_TOKEN
============= =============
+-------------------------------+----------+----------+--------------+ :Type: string
| Token Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: — — — —
| CODECOV_TOKEN | no | string | — — — — | :Description: The token to publish code coverage and unit test results to `CodeCov <https://about.codecov.io//>`__.
+-------------------------------+----------+----------+--------------+
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Secret/CODACY_TOKEN: .. _JOBTMPL/CompletePipeline/Secret/CODACY_TOKEN:
@@ -635,17 +615,15 @@ The name of the library or package.
CODACY_TOKEN CODACY_TOKEN
============ ============
+-------------------------------+----------+----------+--------------+ :Type: string
| Token Name | Required | Type | Default | :Required: no
+===============================+==========+==========+==============+ :Default Value: — — — —
| CODACY_TOKEN | no | string | — — — — | :Description: The token to publish code coverage results to `Codacy <https://www.codacy.com/>`__.
+-------------------------------+----------+----------+--------------+
The name of the library or package.
.. _JOBTMPL/CompletePipeline/Results: .. _JOBTMPL/CompletePipeline/Outputs:
Results Outputs
******* *******
This job template has no output parameters. This job template has no output parameters.

View File

@@ -25,7 +25,7 @@ The job template generates various output parameters derived from
Due to GitHub Action's broken type system and missing implicit type conversions in YAML files, *boolean* values need Due to GitHub Action's broken type system and missing implicit type conversions in YAML files, *boolean* values need
to be returned as *string* values otherwise type compatibility and comparison are broken. This also requires all to be returned as *string* values otherwise type compatibility and comparison are broken. This also requires all
inputs to be *string* parameters, otherwise an step's, job's or template's output cannot be assigned to a template's inputs to be *string* parameters, otherwise step's, job's or template's output cannot be assigned to a template's
input. input.
**Problems:** **Problems:**
@@ -39,6 +39,11 @@ The job template generates various output parameters derived from
comparison will not work as expected. Either the comparison works with ``inputs.param == false`` for the default comparison will not work as expected. Either the comparison works with ``inputs.param == false`` for the default
value, **or** it works with a value from ``${{ needs }}`` context, which is a string ``inputs.param == 'false'``. value, **or** it works with a value from ``${{ needs }}`` context, which is a string ``inputs.param == 'false'``.
.. topic:: Job Execution
.. image:: ../../_static/pyTooling-Actions-PrepareJob.png
:width: 600px
.. topic:: Dependencies .. topic:: Dependencies
* :gh:`actions/checkout` * :gh:`actions/checkout`
@@ -50,10 +55,10 @@ The job template generates various output parameters derived from
Instantiation Instantiation
************* *************
Simple Example The following instantiation example creates a job ``Prepare`` derived from job template ``PrepareJob`` version ``@r5``.
============== In a default usecase, no input parameters need to be specified for the job template assuming a main-branch and
release-branch called ``main``, a development-branch called ``dev``, as well as semantic versioning for tags and
The following instantiation example creates a job `Params` derived from job template `PrepareJob` version `r5`. pull-request titles.
.. code-block:: yaml .. code-block:: yaml
@@ -75,69 +80,84 @@ The following instantiation example creates a job `Params` derived from job temp
with: with:
version: ${{ needs.Prepare.outputs.version }} version: ${{ needs.Prepare.outputs.version }}
.. seealso::
:ref:`JOBTMPL/TagReleaseCommit`
``PrepareJob`` is usualy used to identify if a pipeline's commit is a merge commit created by a pull-request. If
so, this commit can be tagged automatically to trigger a release pipeline (tag pipeline) for the same commit
resulting in a full release (PyPI, GitHub Pages, GitHub Release, ...).
:ref:`JOBTMPL/PublishReleaseNotes`
``PrepareJob`` is usually used to identify if a tag pipeline is a release pipeline.
.. _JOBTMPL/PrepareJob/Parameters: .. _JOBTMPL/PrepareJob/Parameters:
Parameters Parameter Summary
********** *****************
.. topic:: Parameter Summary .. rubric:: Goto :ref:`input parameters <JOBTMPL/PrepareJob/Inputs>`
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| Parameter Name | Required | Type | Default | | Parameter Name | Required | Type | Default |
+=====================================================================+==========+==========+===================================================================+ +=====================================================================+==========+==========+===================================================================+
| :ref:`JOBTMPL/PrepareJob/Param/ubuntu_image` | no | string | ``'ubuntu-24.04'`` | | :ref:`JOBTMPL/PrepareJob/Input/ubuntu_image` | no | string | ``'ubuntu-24.04'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Param/main_branch` | no | string | ``'main'`` | | :ref:`JOBTMPL/PrepareJob/Input/main_branch` | no | string | ``'main'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Param/development_branch` | no | string | ``'dev'`` | | :ref:`JOBTMPL/PrepareJob/Input/development_branch` | no | string | ``'dev'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Param/release_branch` | no | string | ``'main'`` | | :ref:`JOBTMPL/PrepareJob/Input/release_branch` | no | string | ``'main'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Param/nightly_tag_pattern` | no | string | ``'nightly'`` | | :ref:`JOBTMPL/PrepareJob/Input/nightly_tag_pattern` | no | string | ``'nightly'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern` | no | string | ``'(v|r)?[0-9]+(\.[0-9]+){0,2}(-(dev|alpha|beta|rc)([0-9]*))?'`` | | :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern` | no | string | ``'(v|r)?[0-9]+(\.[0-9]+){0,2}(-(dev|alpha|beta|rc)([0-9]*))?'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
.. topic:: :ref:`Secret Summary <JOBTMPL/PrepareJob/Secrets>` .. rubric:: Goto Goto :ref:`secrets <JOBTMPL/PrepareJob/Secrets>`
This job template needs no secrets. This job template needs no secrets.
.. topic:: :ref:`Output Summary <JOBTMPL/PrepareJob/Results>` .. rubric:: Goto Goto :ref:`output parameters <JOBTMPL/PrepareJob/Outputs>`
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| Result Name | Type | Description | | Result Name | Type | Description |
+=====================================================================+==========+===================================================================+ +=====================================================================+==========+===================================================================+
| :ref:`JOBTMPL/PrepareJob/Result/on_main_branch` | string | | | :ref:`JOBTMPL/PrepareJob/Output/on_main_branch` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/on_dev_branch` | string | | | :ref:`JOBTMPL/PrepareJob/Output/on_dev_branch` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/on_release_branch` | string | | | :ref:`JOBTMPL/PrepareJob/Output/on_release_branch` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/is_regular_commit` | string | | | :ref:`JOBTMPL/PrepareJob/Output/is_regular_commit` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/is_merge_commit` | string | | | :ref:`JOBTMPL/PrepareJob/Output/is_merge_commit` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/is_release_commit` | string | | | :ref:`JOBTMPL/PrepareJob/Output/is_release_commit` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/is_nightly_tag` | string | | | :ref:`JOBTMPL/PrepareJob/Output/is_nightly_tag` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/is_release_tag` | string | | | :ref:`JOBTMPL/PrepareJob/Output/is_release_tag` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/ref_kind` | string | | | :ref:`JOBTMPL/PrepareJob/Output/ref_kind` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/branch` | string | | | :ref:`JOBTMPL/PrepareJob/Output/branch` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/tag` | string | | | :ref:`JOBTMPL/PrepareJob/Output/tag` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/version` | string | | | :ref:`JOBTMPL/PrepareJob/Output/version` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/pr_title` | string | | | :ref:`JOBTMPL/PrepareJob/Output/pr_title` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/PrepareJob/Result/pr_number` | string | | | :ref:`JOBTMPL/PrepareJob/Output/pr_number` | string | |
+---------------------------------------------------------------------+----------+-------------------------------------------------------------------+ +---------------------------------------------------------------------+----------+-------------------------------------------------------------------+
.. _JOBTMPL/PrepareJob/Param/ubuntu_image:
.. _JOBTMPL/PrepareJob/Inputs:
Input Parameters
****************
.. _JOBTMPL/PrepareJob/Input/ubuntu_image:
ubuntu_image ubuntu_image
============ ============
@@ -149,7 +169,7 @@ ubuntu_image
:Description: Name of the Ubuntu image used to run this job. :Description: Name of the Ubuntu image used to run this job.
.. _JOBTMPL/PrepareJob/Param/main_branch: .. _JOBTMPL/PrepareJob/Input/main_branch:
main_branch main_branch
=========== ===========
@@ -161,7 +181,7 @@ main_branch
:Description: Name of the main branch. :Description: Name of the main branch.
.. _JOBTMPL/PrepareJob/Param/development_branch: .. _JOBTMPL/PrepareJob/Input/development_branch:
development_branch development_branch
================== ==================
@@ -173,7 +193,7 @@ development_branch
:Description: Name of the development branch. :Description: Name of the development branch.
.. _JOBTMPL/PrepareJob/Param/release_branch: .. _JOBTMPL/PrepareJob/Input/release_branch:
release_branch release_branch
============== ==============
@@ -185,7 +205,7 @@ release_branch
:Description: Name of the branch containing releases. :Description: Name of the branch containing releases.
.. _JOBTMPL/PrepareJob/Param/nightly_tag_pattern: .. _JOBTMPL/PrepareJob/Input/nightly_tag_pattern:
nightly_tag_pattern nightly_tag_pattern
=================== ===================
@@ -199,7 +219,7 @@ nightly_tag_pattern
.. _JOBTMPL/PrepareJob/Param/release_tag_pattern: .. _JOBTMPL/PrepareJob/Input/release_tag_pattern:
release_tag_pattern release_tag_pattern
=================== ===================
@@ -232,12 +252,12 @@ Secrets
This job template needs no secrets. This job template needs no secrets.
.. _JOBTMPL/PrepareJob/Results: .. _JOBTMPL/PrepareJob/Outputs:
Results Outputs
******* *******
.. _JOBTMPL/PrepareJob/Result/on_main_branch: .. _JOBTMPL/PrepareJob/Output/on_main_branch:
on_main_branch on_main_branch
============== ==============
@@ -245,11 +265,11 @@ on_main_branch
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is on :ref:`main branch <JOBTMPL/PrepareJob/Param/main_branch>`, :Description: Returns ``'true'`` if the pipeline's commit is on :ref:`main branch <JOBTMPL/PrepareJob/Input/main_branch>`,
otherwise return ``'false'``. otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/on_dev_branch: .. _JOBTMPL/PrepareJob/Output/on_dev_branch:
on_dev_branch on_dev_branch
============= =============
@@ -257,11 +277,11 @@ on_dev_branch
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is on :ref:`development branch <JOBTMPL/PrepareJob/Param/development_branch>`, :Description: Returns ``'true'`` if the pipeline's commit is on :ref:`development branch <JOBTMPL/PrepareJob/Input/development_branch>`,
otherwise return ``'false'``. otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/on_release_branch: .. _JOBTMPL/PrepareJob/Output/on_release_branch:
on_release_branch on_release_branch
================= =================
@@ -269,11 +289,11 @@ on_release_branch
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is on :ref:`release branch <JOBTMPL/PrepareJob/Param/release_branch>`, :Description: Returns ``'true'`` if the pipeline's commit is on :ref:`release branch <JOBTMPL/PrepareJob/Input/release_branch>`,
otherwise return ``'false'``. otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/is_regular_commit: .. _JOBTMPL/PrepareJob/Output/is_regular_commit:
is_regular_commit is_regular_commit
================= =================
@@ -281,11 +301,11 @@ is_regular_commit
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is not a :ref:`merge commit <JOBTMPL/PrepareJob/Result/is_merge_commit>` :Description: Returns ``'true'`` if the pipeline's commit is not a :ref:`merge commit <JOBTMPL/PrepareJob/Output/is_merge_commit>`
nor :ref:`release commit <JOBTMPL/PrepareJob/Result/is_release_commit>`, otherwise return ``'false'``. nor :ref:`release commit <JOBTMPL/PrepareJob/Output/is_release_commit>`, otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/is_merge_commit: .. _JOBTMPL/PrepareJob/Output/is_merge_commit:
is_merge_commit is_merge_commit
=============== ===============
@@ -293,12 +313,12 @@ is_merge_commit
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is on :ref:`main branch <JOBTMPL/PrepareJob/Param/main_branch>` :Description: Returns ``'true'`` if the pipeline's commit is on :ref:`main branch <JOBTMPL/PrepareJob/Input/main_branch>`
or :ref:`development branch <JOBTMPL/PrepareJob/Param/development_branch>` and has more than one or :ref:`development branch <JOBTMPL/PrepareJob/Input/development_branch>` and has more than one
parent (merge commit), otherwise return ``'false'``. parent (merge commit), otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/is_release_commit: .. _JOBTMPL/PrepareJob/Output/is_release_commit:
is_release_commit is_release_commit
================= =================
@@ -306,11 +326,11 @@ is_release_commit
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline's commit is on :ref:`release branch <JOBTMPL/PrepareJob/Param/release_branch>` :Description: Returns ``'true'`` if the pipeline's commit is on :ref:`release branch <JOBTMPL/PrepareJob/Input/release_branch>`
and has more than one parent (merge commit), otherwise return ``'false'``. and has more than one parent (merge commit), otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/is_nightly_tag: .. _JOBTMPL/PrepareJob/Output/is_nightly_tag:
is_nightly_tag is_nightly_tag
============== ==============
@@ -318,12 +338,12 @@ is_nightly_tag
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline is a tag pipeline for a commit on :ref:`release branch <JOBTMPL/PrepareJob/Param/release_branch>` :Description: Returns ``'true'`` if the pipeline is a tag pipeline for a commit on :ref:`release branch <JOBTMPL/PrepareJob/Input/release_branch>`
and the tag's name matches the :ref:`nightly tag pattern <JOBTMPL/PrepareJob/Param/nightly_tag_pattern>`, and the tag's name matches the :ref:`nightly tag pattern <JOBTMPL/PrepareJob/Input/nightly_tag_pattern>`,
otherwise return ``'false'``. otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/is_release_tag: .. _JOBTMPL/PrepareJob/Output/is_release_tag:
is_release_tag is_release_tag
============== ==============
@@ -331,12 +351,12 @@ is_release_tag
:Type: string :Type: string
:Default Value: ``'false'`` :Default Value: ``'false'``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns ``'true'`` if the pipeline is a tag pipeline for a commit on :ref:`release branch <JOBTMPL/PrepareJob/Param/release_branch>` :Description: Returns ``'true'`` if the pipeline is a tag pipeline for a commit on :ref:`release branch <JOBTMPL/PrepareJob/Input/release_branch>`
and the tag's name matches the :ref:`release tag pattern <JOBTMPL/PrepareJob/Param/release_tag_pattern>`, and the tag's name matches the :ref:`release tag pattern <JOBTMPL/PrepareJob/Input/release_tag_pattern>`,
otherwise return ``'false'``. otherwise return ``'false'``.
.. _JOBTMPL/PrepareJob/Result/ref_kind: .. _JOBTMPL/PrepareJob/Output/ref_kind:
ref_kind ref_kind
======== ========
@@ -347,12 +367,12 @@ ref_kind
:Description: Returns ``'branch'`` if pipeline's commit is on a branch or returns ``'tag'`` if the pipeline runs for :Description: Returns ``'branch'`` if pipeline's commit is on a branch or returns ``'tag'`` if the pipeline runs for
a tagged commit, otherwise returns ``'unknown'`` in case of an internal error. a tagged commit, otherwise returns ``'unknown'`` in case of an internal error.
If the kind is a branch, the branch name is available in the job's :ref:`JOBTMPL/PrepareJob/Result/branch` If the kind is a branch, the branch name is available in the job's :ref:`JOBTMPL/PrepareJob/Output/branch`
result. |br| result. |br|
If the kind is a tag, the tags name is available in the job's :ref:`JOBTMPL/PrepareJob/Result/tag` If the kind is a tag, the tags name is available in the job's :ref:`JOBTMPL/PrepareJob/Output/tag`
result. |br| result. |br|
Moreover, if the tag matches the :ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`, the extracted Moreover, if the tag matches the :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`, the extracted
version is available in the job's :ref:`JOBTMPL/PrepareJob/Result/version` result. version is available in the job's :ref:`JOBTMPL/PrepareJob/Output/version` result.
.. note:: .. note::
@@ -361,7 +381,7 @@ ref_kind
and derives if a pipeline runs for a commit on a branch or a tagged commit. and derives if a pipeline runs for a commit on a branch or a tagged commit.
.. _JOBTMPL/PrepareJob/Result/branch: .. _JOBTMPL/PrepareJob/Output/branch:
branch branch
====== ======
@@ -369,10 +389,10 @@ branch
:Type: string :Type: string
:Default Value: ``''`` :Default Value: ``''``
:Possible Values: Any valid branch name. :Possible Values: Any valid branch name.
:Description: Returns the branch's name the pipeline's commit is associated to, if :ref:`JOBTMPL/PrepareJob/Result/ref_kind` :Description: Returns the branch's name the pipeline's commit is associated to, if :ref:`JOBTMPL/PrepareJob/Output/ref_kind`
is ``'branch'``, otherwise returns an empty string ``''``. is ``'branch'``, otherwise returns an empty string ``''``.
.. _JOBTMPL/PrepareJob/Result/tag: .. _JOBTMPL/PrepareJob/Output/tag:
tag tag
=== ===
@@ -380,28 +400,28 @@ tag
:Type: string :Type: string
:Default Value: ``''`` :Default Value: ``''``
:Possible Values: Any valid tag name. :Possible Values: Any valid tag name.
:Description: Returns the tag's name the pipeline's commit is associated to, if :ref:`JOBTMPL/PrepareJob/Result/ref_kind` :Description: Returns the tag's name the pipeline's commit is associated to, if :ref:`JOBTMPL/PrepareJob/Output/ref_kind`
is ``'tag'``, otherwise returns an empty string ``''``. is ``'tag'``, otherwise returns an empty string ``''``.
.. _JOBTMPL/PrepareJob/Result/version: .. _JOBTMPL/PrepareJob/Output/version:
version version
======= =======
:Type: string :Type: string
:Default Value: ``''`` :Default Value: ``''``
:Possible Values: Any valid version matching :ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`. :Possible Values: Any valid version matching :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`.
:Description: In case the pipeline runs for a tag, it returns the tag's name, if the name matches :Description: In case the pipeline runs for a tag, it returns the tag's name, if the name matches
:ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`, otherwise returns an empty string ``''``. |br| :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`, otherwise returns an empty string ``''``. |br|
In case the pipeline runs for a branch, then the commit is checked if it's a In case the pipeline runs for a branch, then the commit is checked if it's a
:ref:`merge commit <JOBTMPL/PrepareJob/Result/is_merge_commit>` and corresponding pull-request (PR) is :ref:`merge commit <JOBTMPL/PrepareJob/Output/is_merge_commit>` and corresponding pull-request (PR) is
searched. When a matching PR can be located and it's title matches searched. When a matching PR can be located and it's title matches
:ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`, then this title is returned as a version, :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`, then this title is returned as a version,
otherwise it returns an empty string ``''``. otherwise it returns an empty string ``''``.
.. _JOBTMPL/PrepareJob/Result/pr_title: .. _JOBTMPL/PrepareJob/Output/pr_title:
pr_title pr_title
======== ========
@@ -410,12 +430,12 @@ pr_title
:Default Value: ``''`` :Default Value: ``''``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns the associated pull-request's title, if the pipeline's commit is a :Description: Returns the associated pull-request's title, if the pipeline's commit is a
:ref:`merge commit <JOBTMPL/PrepareJob/Result/is_merge_commit>` and the located pull-request's title :ref:`merge commit <JOBTMPL/PrepareJob/Output/is_merge_commit>` and the located pull-request's title
for this commit matches :ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`, otherwise returns an for this commit matches :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`, otherwise returns an
empty string ``''``. empty string ``''``.
.. _JOBTMPL/PrepareJob/Result/pr_number: .. _JOBTMPL/PrepareJob/Output/pr_number:
pr_number pr_number
========= =========
@@ -424,6 +444,6 @@ pr_number
:Default Value: ``''`` :Default Value: ``''``
:Possible Values: ``'true'``, ``'false'`` :Possible Values: ``'true'``, ``'false'``
:Description: Returns the associated pull-request's number, if the pipeline's commit is a :Description: Returns the associated pull-request's number, if the pipeline's commit is a
:ref:`merge commit <JOBTMPL/PrepareJob/Result/is_merge_commit>` and the located pull-request's title :ref:`merge commit <JOBTMPL/PrepareJob/Output/is_merge_commit>` and the located pull-request's title
for this commit matches :ref:`JOBTMPL/PrepareJob/Param/release_tag_pattern`, otherwise returns an for this commit matches :ref:`JOBTMPL/PrepareJob/Input/release_tag_pattern`, otherwise returns an
empty string ``''``. empty string ``''``.

View File

@@ -4,7 +4,8 @@ Overview
######## ########
The following list categorizes all pre-defined job templates, which can be instantiated in a pipeline (GitHub Action 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 deriving own job templates. Workflow). They can also serve as an example for creating or deriving own job templates. All job templates are highly
customizable.
.. include:: Templates.rst .. include:: Templates.rst
@@ -47,9 +48,44 @@ Some templates might provide output parameters, which can be used in dependent j
<Secret2>: ${{ secrets.<SecretVariable2> }} <Secret2>: ${{ secrets.<SecretVariable2> }}
<OtherInstance>: <OtherInstance>:
...
needs: needs:
- <InstanceName> - <InstanceName>
... ...
with: with:
<Param1>: ${{ needs.<InstanceName>.outputs.<Output1> }} <Param1>: ${{ needs.<InstanceName>.outputs.<Output1> }}
.. _JOBTMPL/CommonParameters:
Common Parameters
*****************
All jobs specified in the templates are executed in
`images provided by GitHub Actions <https://github.com/actions/runner-images?tab=readme-ov-file#available-images>`__.
Except for platform specific jobs (e.g., unit testing on macOS, Ubuntu, Windows Server, ...) allmost all other jobs use
an Ubuntu image. This image can be configured by the job template input parameter :ref:`JOBTMPL/Common/Input/ubuntu_image`.
Similarly, many jobs rely on Python scripting and therefore need a Python version, which can be configured via
:ref:`JOBTMPL/Common/Input/python_version`.
.. _JOBTMPL/Common/Input/ubuntu_image:
ubuntu_image
============
:Type: string
:Required: usually no
:Default Value: ``'ubuntu-24.04'``
:Possible Values: See `actions/runner-images - Available Images <https://github.com/actions/runner-images?tab=readme-ov-file#available-images>`__
:Description: Name of the Ubuntu image used to run a job.
.. _JOBTMPL/Common/Input/python_version:
python_version
==============
:Type: string
:Required: usually no
:Default Value: ``'3.13'``
:Possible Values: See `actions/runner-images - Available Images <https://github.com/actions/runner-images?tab=readme-ov-file#available-images>`__
:Description: Python version used to run Python scripts in a job.

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB