Files
Actions/doc/JobTemplate/Setup/ExtractConfiguration.rst
2025-09-24 09:53:51 +02:00

878 lines
38 KiB
ReStructuredText

.. _JOBTMPL/ExtractConfiguration:
.. index::
single: GitHub Action Reusable Workflow; ExtractConfiguration Template
ExtractConfiguration
####################
The ``ExtractConfiguration`` job template extracts Python project settings from :file:`pyproject.toml` and shares the
values via output parameters with other jobs. Thus, only a single centralized implementation is needed to avoid code
duplications within jobs.
.. topic:: Features
* Extract the unittest report file in pytest's JUnit XML format as directory name, filename and full path from
:file:`pyproject.toml`.
* Extract the merged unittest XML report file as directory name, filename and full path from :file:`pyproject.toml`.
* Extract code coverage report in HTML format as directory from :file:`pyproject.toml`.
* Extract code coverage report file in Cobertura XML format as directory name, filename and full path from
:file:`pyproject.toml`.
* Extract code coverage report file in Coverage.py's JSON format as directory name, filename and full path from
:file:`pyproject.toml`.
* Extract static typing report file in Cobertura XML format as directory name, filename and full path from
:file:`pyproject.toml`.
* Extract static typing report file in JUnit XML format as directory name, filename and full path from
:file:`pyproject.toml`.
* Extract static typing report in HTML format as directory name from :file:`pyproject.toml`.
.. topic:: Behavior
1. Checkout repository.
2. Install Python dependencies.
3. Compute the full package name and the package source directory.
4. Read :file:`pyproject.toml` and extract settings for:
* :term:`Coverage.py`
* :term:`mypy`
* :term:`pyEDAA.Reports`
* :term:`pytest`
.. topic:: Job Execution
.. image:: ../../_static/pyTooling-Actions-ExtractConfiguration.png
:width: 600px
.. topic:: Dependencies
* :gh:`actions/checkout`
* :gh:`actions/setup-python`
* :pypi:`wheel`
* :pypi:`tomli`
.. _JOBTMPL/ExtractConfiguration/Instantiation:
Instantiation
*************
The following instantiation example creates a ``ConfigParams`` job derived from job template ``ExtractConfiguration``
version ``@r6``. It requires no special parameters to extract unit test (pytest) and code coverage (Coverage.py)
settings.
.. code-block:: yaml
jobs:
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
UnitTesting:
uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r6
needs:
- ConfigParams
with:
unittest_report_xml: ${{ needs.ConfigParams.outputs.unittest_report_xml }}
coverage_report_xml: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
coverage_report_json: ${{ needs.ConfigParams.outputs.coverage_report_json }}
coverage_report_html: ${{ needs.ConfigParams.outputs.coverage_report_html }}
.. seealso::
:ref:`JOBTMPL/UnitTesting`
``UnitTesting`` is usually
:ref:`JOBTMPL/StaticTypeCheck`
xxx
:ref:`JOBTMPL/CheckDocumentation`
xxx
:ref:`JOBTMPL/InstallPackage`
xxx
:ref:`JOBTMPL/PublishCoverageResults`
xxx
:ref:`JOBTMPL/PublishTestResults`
xxx
:ref:`JOBTMPL/SphinxDocumentation`
xxx
.. _JOBTMPL/ExtractConfiguration/Parameters:
Parameter Summary
*****************
.. rubric:: Goto :ref:`input parameters <JOBTMPL/ExtractConfiguration/Inputs>`
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| Parameter Name | Required | Type | Default |
+=====================================================================+==========+==========+===================================================================+
| :ref:`JOBTMPL/ExtractConfiguration/Input/ubuntu_image_version` | no | string | ``'24.04'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Input/python_version` | no | string | ``'3.13'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Input/coverage_config` | no | string | ``'pyproject.toml'`` |
+---------------------------------------------------------------------+----------+----------+-------------------------------------------------------------------+
.. rubric:: Goto :ref:`secrets <JOBTMPL/ExtractConfiguration/Secrets>`
This job template needs no secrets.
.. rubric:: Goto :ref:`output parameters <JOBTMPL/ExtractConfiguration/Outputs>`
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| Result Name | Type | Description |
+=================================================================================+================+===================================================================+
| :ref:`JOBTMPL/ExtractConfiguration/Output/unittest_report_xml` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/unittest_merged_report_xml` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/coverage_report_html` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/coverage_report_xml` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/coverage_report_json` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/typing_report_cobertura` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/typing_report_junit` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
| :ref:`JOBTMPL/ExtractConfiguration/Output/typing_report_html` | string (JSON) | |
+---------------------------------------------------------------------------------+----------------+-------------------------------------------------------------------+
.. _JOBTMPL/ExtractConfiguration/Inputs:
Input Parameters
****************
.. _JOBTMPL/ExtractConfiguration/Input/ubuntu_image_version:
.. include:: ../_ubuntu_image_version.rst
.. _JOBTMPL/ExtractConfiguration/Input/python_version:
.. include:: ../_python_version.rst
.. _JOBTMPL/ExtractConfiguration/Input/coverage_config:
coverage_config
===============
:Type: string
:Required: no
:Default Value: ``'pyproject.toml'``
:Possible Values: Any valid path to a :file:`pyproject.toml` file. |br|
Alternatively, path to a :file:`.coveragerc` file (deprecated).
:Description: Path to a Python project configuration file for extraction of project settings.
:Example:
.. grid:: 2
.. grid-item::
:columns: 5
.. rubric:: Extracted values from :file:`pyproject.toml`
.. code-block:: toml
[tool.coverage.xml]
output = "report/coverage/coverage.xml"
[tool.coverage.json]
output = "report/coverage/coverage.json"
[tool.coverage.html]
directory = "report/coverage/html"
title="Code Coverage of myPackage"
[tool.mypy]
html_report = "report/typing/html"
junit_xml = "report/typing/StaticTypingSummary.xml"
cobertura_xml_report = "report/typing"
[tool.pyedaa-reports]
junit_xml = "report/unit/unittest.xml"
[tool.pytest]
junit_xml = "report/unit/UnittestReportSummary.xml"
.. _JOBTMPL/ExtractConfiguration/Secrets:
Secrets
*******
This job template needs no secrets.
.. _JOBTMPL/ExtractConfiguration/Outputs:
Outputs
*******
.. _JOBTMPL/ExtractConfiguration/Output/unittest_report_xml:
unittest_report_xml
===================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the unit
test's report XML file created by :term:`pytest` in JUnit XML format.
The JSON object contains these fields:
:directory: Contains the directory where the unittest XML report file will be created. |br|
Example: :file:`reports/unit`
:filename: Contains the filename of the unittest XML report file. |br|
Example: :file:`UnittestReportSummary.xml`
:fullpath: Contains the path where the unittest XML report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/unit/UnittestReportSummary.xml`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`pytest`.
.. code-block:: toml
[tool.pytest]
junit_xml = "report/unit/UnittestReportSummary.xml"
:Example:
.. code-block:: json
{ "directory": "reports/unit",
"filename": "UnittestReportSummary.xml",
"fullpath": "reports/unit/UnittestReportSummary.xml"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.unittest_report_xml }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.unittest_report_xml).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.unittest_report_xml).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.unittest_report_xml).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/unittest_merged_report_xml:
unittest_merged_report_xml
==========================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the merged
unittest report file in JUnit XML format created by :term:`pyEDAA.Reports`.
The JSON object contains these fields:
:directory: Contains the directory where the merged unittest XML report file will be created. |br|
Example: :file:`reports/unit`
:filename: Contains the filename of the merged unittest XML report file. |br|
Example: :file:`unittest.xml`
:fullpath: Contains the path where the merged unittest XML report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/unit/unittest.xml`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`pyEDAA.Reports`.
.. code-block:: toml
[tool.pyedaa-reports]
junit_xml = "report/unit/unittest.xml"
:Example:
.. code-block:: json
{ "directory": "reports/unit",
"filename": "unittest.xml",
"fullpath": "reports/unit/unittest.xml"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.unittest_merged_report_xml }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.unittest_merged_report_xml).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.unittest_merged_report_xml).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.unittest_merged_report_xml).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/coverage_report_html:
coverage_report_html
====================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory and the full path, where the code coverage
HTML report will be generated by :term:`Coverage.py`.
The JSON object contains these fields:
:directory: Contains the directory where the code coverage report in HTML format will be created. |br|
Example: :file:`report/coverage/html`
:fullpath: Contains the path where the code coverage report in HTML format will be created. |br|
This is the same as the previous JSON field. |br|
Example: :file:`report/coverage/html`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`Coverage.py`.
.. code-block:: toml
[tool.coverage.html]
directory = "report/coverage/html"
title="Code Coverage of pyDummy"
:Example:
.. code-block:: json
{ "directory": "report/coverage/html",
"fullpath": "report/coverage/html"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.coverage_report_html }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_html).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_html).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_html).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/coverage_report_xml:
coverage_report_xml
===================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the code
coverage XML report file in Cobertura XML format created by :term:`Coverage.py`.
The JSON object contains these fields:
:directory: Contains the directory where the code coverage XML report file will be created. |br|
Example: :file:`reports/unit`
:filename: Contains the filename of the code coverage XML report file. |br|
Example: :file:`unittest.xml`
:fullpath: Contains the path where the code coverage XML report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/unit/unittest.xml`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`Coverage.py`.
.. code-block:: toml
[tool.coverage.xml]
output = "report/coverage/coverage.xml"
:Example:
.. code-block:: json
{ "directory": "reports/coverage",
"filename": "coverage.xml",
"fullpath": "reports/coverage/coverage.xml"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.coverage_report_xml }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_xml).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_xml).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_xml).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/coverage_report_json:
coverage_report_json
====================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the code
coverage JSON report file created by :term:`Coverage.py`.
The JSON object contains these fields:
:directory: Contains the directory where the code coverage JSON report file will be created. |br|
Example: :file:`reports/unit`
:filename: Contains the filename of the code coverage JSON report file. |br|
Example: :file:`unittest.json`
:fullpath: Contains the path where the code coverage JSON report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/unit/unittest.json`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`Coverage.py`.
.. code-block:: toml
[tool.coverage.json]
output = "report/coverage/coverage.json"
:Example:
.. code-block:: json
{ "directory": "reports/coverage",
"filename": "coverage.json",
"fullpath": "reports/coverage/coverage.json"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.coverage_report_json }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.coverage_report_json).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/typing_report_cobertura:
typing_report_cobertura
=======================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the static
type checking report file in Cobertura format created by :term:`mypy`.
The JSON object contains these fields:
:directory: Contains the directory where the type checking XML report file will be created. |br|
Example: :file:`reports/typing`
:filename: Contains the filename of the type checking XML report file. |br|
Example: :file:`cobertura.xml`
:fullpath: Contains the path where the type checking XML report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/typing/cobertura.xml`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`mypy`.
.. code-block:: toml
[tool.mypy]
cobertura_xml_report = "report/typing"
:Example:
.. code-block:: json
{ "directory": "reports/typing",
"filename": "cobertura.xml",
"fullpath": "reports/typing/cobertura.xml"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.typing_report_cobertura }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.typing_report_cobertura).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.typing_report_cobertura).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.typing_report_cobertura).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/typing_report_junit:
typing_report_junit
===================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the static
type checking report file in JUnit XML format created by :term:`mypy`.
The JSON object contains these fields:
:directory: Contains the directory where the static typing JUnit XML report file will be created. |br|
Example: :file:`reports/typing`
:filename: Contains the filename of the static typing JUnit XML report file. |br|
Example: :file:`StaticTypingSummary.xml`
:fullpath: Contains the path where the cstatic typing JUnit XML report file will be created. |br|
This is the concatenation of both previous JSON fields. |br|
Example: :file:`reports/typing/StaticTypingSummary.xml`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`mypy`.
.. code-block:: toml
[tool.mypy]
junit_xml = "report/typing/StaticTypingSummary.xml"
:Example:
.. code-block:: json
{ "directory": "reports/typing",
"filename": "StaticTypingSummary.xml",
"fullpath": "reports/typing/StaticTypingSummary.xml"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.typing_report_junit }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.typing_report_junit).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.typing_report_junit).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.typing_report_junit).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Output/typing_report_html:
typing_report_html
==================
:Type: string (JSON)
:Description: Returns a string in JSON format containing the directory, the filename and the fullpath to the static
type checking report in HTML format created by :term:`mypy`.
The JSON object contains these fields:
:directory: Contains the directory where the static typing HTML report will be created. |br|
Example: :file:`reports/typing/html`
:fullpath: Contains the path where the static typing HTML report will be created. |br|
This is the same as the previous JSON field. |br|
Example: :file:`reports/typing/html`
:pyproject.toml: Matching :file:`pyproject.toml` configuration for tool :term:`mypy`.
.. code-block:: toml
[tool.mypy]
html_report = "report/typing/html"
:Example:
.. code-block:: json
{ "directory": "reports/typing/html",
"fullpath": "reports/typing/html"
}
:Usage:
.. tab-set::
.. tab-item:: Forwarding complete JSON object
:sync: ForwardParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: ${{ needs.ConfigParams.outputs.typing_report_html }}
.. tab-item:: Assembling new JSON object
:sync: AssembleParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
report: >-
{ "dir": "${{ fromJson(needs.ConfigParams.outputs.typing_report_html).directory }}",
"file": "${{ fromJson(needs.ConfigParams.outputs.typing_report_html).filename }}"
}
.. tab-item:: Using single field from JSON object
:sync: SingleFieldFromParam
.. code-block:: yaml
ConfigParams:
uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r6
OtherJob:
uses: some/path/to/a/template@r6
needs:
- ConfigParams
with:
fullpath: ${{ fromJson(needs.ConfigParams.outputs.typing_report_html).fullpath }}
.. _JOBTMPL/ExtractConfiguration/Optimizations:
Optimizations
*************
This template offers no optimizations (reduced job runtime).