diff --git a/.github/workflows/CoverageCollection.yml b/.github/workflows/CoverageCollection.yml index 0c2c9e5..8ae363b 100644 --- a/.github/workflows/CoverageCollection.yml +++ b/.github/workflows/CoverageCollection.yml @@ -127,9 +127,12 @@ jobs: - name: Collect coverage continue-on-error: true run: | + RELDIR="$(realpath --relative-to=${{ inputs.tests_directory }} .)" + echo "relative: ${RELDIR}" cd ${{ inputs.tests_directory }} - [ 'x${{ inputs.coverage_config }}' != 'x' ] && PYCOV_ARGS='--cov-config=../${{ inputs.coverage_config }}' || unset PYCOV_ARGS - python -m pytest -rA --cov=. $PYCOV_ARGS ${{ inputs.unittest_directory }} --color=yes + [ 'x${{ inputs.coverage_config }}' != 'x' ] && PYCOV_ARGS="--cov-config=${RELDIR}/${{ inputs.coverage_config }}" || unset PYCOV_ARGS + echo "python -m pytest -rA --cov=${RELDIR} ${PYCOV_ARGS} ${{ inputs.unittest_directory }} --color=yes" + python -m pytest -rA --cov=${RELDIR} $PYCOV_ARGS ${{ inputs.unittest_directory }} --color=yes - name: Convert to cobertura format run: coverage xml --data-file=${{ inputs.tests_directory }}/.coverage diff --git a/.github/workflows/PublishOnPyPI.yml b/.github/workflows/PublishOnPyPI.yml index 897dc59..afa581f 100644 --- a/.github/workflows/PublishOnPyPI.yml +++ b/.github/workflows/PublishOnPyPI.yml @@ -28,7 +28,7 @@ on: python_version: description: 'Python version.' required: false - default: '3.10' + default: '3.11' type: string requirements: description: 'Python dependencies to be installed through pip.' diff --git a/.github/workflows/StaticTypeCheck.yml b/.github/workflows/StaticTypeCheck.yml index c391a5e..bf06d99 100644 --- a/.github/workflows/StaticTypeCheck.yml +++ b/.github/workflows/StaticTypeCheck.yml @@ -35,19 +35,29 @@ on: required: false default: '-r tests/requirements.txt' type: string - report: - description: 'Directory to upload as an artifact.' - required: false - default: 'htmlmypy' - type: string commands: description: 'Commands to run the static type checks.' required: true type: string - artifact: + html_report: + description: 'Directory to upload as an artifact.' + required: false + default: 'htmlmypy' + type: string + junit_report: + description: 'junit file to upload as an artifact.' + required: false + default: 'StaticTypingSummary.xml' + type: string + html_artifact: description: 'Name of the typing artifact.' required: true type: string + junit_artifact: + description: 'Name of the typing artifact.' + required: false + default: '' + type: string jobs: @@ -71,12 +81,22 @@ jobs: continue-on-error: true run: ${{ inputs.commands }} - - name: 📤 Upload 'Static Typing Report' artifact - if: ${{ inputs.artifact != '' }} + - name: 📤 Upload 'Static Typing Report' HTML artifact + if: ${{ inputs.html_artifact != '' }} continue-on-error: true uses: actions/upload-artifact@v3 with: - name: ${{ inputs.artifact }} - path: ${{ inputs.report }} + name: ${{ inputs.html_artifact }} + path: ${{ inputs.html_report }} + if-no-files-found: error + retention-days: 1 + + - name: 📤 Upload 'Static Typing Report' JUnit artifact + if: ${{ inputs.junit_artifact != '' }} + continue-on-error: true + uses: actions/upload-artifact@v2 + with: + name: ${{ inputs.junit_artifact }} + path: ${{ inputs.junit_report }} if-no-files-found: error retention-days: 1 diff --git a/.github/workflows/VerifyDocs.yml b/.github/workflows/VerifyDocs.yml index 18c0ee4..b332028 100644 --- a/.github/workflows/VerifyDocs.yml +++ b/.github/workflows/VerifyDocs.yml @@ -28,7 +28,7 @@ on: python_version: description: 'Python version.' required: false - default: '3.10' + default: '3.11' type: string jobs: diff --git a/ExamplePipeline.yml b/ExamplePipeline.yml index 30fa4ee..5e4e795 100644 --- a/ExamplePipeline.yml +++ b/ExamplePipeline.yml @@ -75,18 +75,22 @@ jobs: needs: - Params with: - commands: mypy --html-report htmlmypy -p ToolName - artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} + commands: | + mypy --junit-xml StaticTypingSummary.xml --html-report htmlmypy -p ToolName + html_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_html }} + junit_artifact: ${{ fromJson(needs.Params.outputs.params).artifacts.typing_junit }} # Optional python_version: ${{ fromJson(needs.Params.outputs.params).python_version }} requirements: '-r tests/requirements.txt' - report: 'htmlmypy' + html_report: 'htmlmypy' + junit_report: 'StaticTypingSummary.xml' allow_failure: true PublishTestResults: uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@main needs: - UnitTesting + - StaticTypeCheck with: # Optional report_files: artifacts/**/*.xml @@ -178,5 +182,6 @@ jobs: ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.9 ${{ fromJson(needs.Params.outputs.params).artifacts.unittesting }}-macos-3.10 ${{ fromJson(needs.Params.outputs.params).artifacts.coverage }} - ${{ fromJson(needs.Params.outputs.params).artifacts.typing }} + ${{ fromJson(needs.Params.outputs.params).artifacts.typing_html }} + ${{ fromJson(needs.Params.outputs.params).artifacts.typing_junit }} ${{ fromJson(needs.Params.outputs.params).artifacts.doc }} diff --git a/doc/JobTemplate/StaticTypeCheck.rst b/doc/JobTemplate/StaticTypeCheck.rst index 3d40af5..f8fc9ac 100644 --- a/doc/JobTemplate/StaticTypeCheck.rst +++ b/doc/JobTemplate/StaticTypeCheck.rst @@ -110,18 +110,6 @@ requirements Python dependencies to be installed through pip. -report -====== - -+----------------+----------+----------+-----------------+ -| Parameter Name | Required | Type | Default | -+================+==========+==========+=================+ -| report | optional | string | ``htmlmypy`` | -+----------------+----------+----------+-----------------+ - -Directory to upload as an artifact. - - commands ======== @@ -134,13 +122,49 @@ commands Commands to run the static type checks. -artifact -======== +html_report +=========== + ++----------------+----------+----------+-----------------+ +| Parameter Name | Required | Type | Default | ++================+==========+==========+=================+ +| report | optional | string | ``htmlmypy`` | ++----------------+----------+----------+-----------------+ + +HTML output directory to upload as an artifact. + + +junit_report +============ + ++----------------+----------+----------+-----------------------------+ +| Parameter Name | Required | Type | Default | ++================+==========+==========+=============================+ +| report | optional | string | ``StaticTypingSummary.xml`` | ++----------------+----------+----------+-----------------------------+ + +junit file to upload as an artifact. + + +html_artifact +============= +----------------+----------+----------+--------------+ | Parameter Name | Required | Type | Default | +================+==========+==========+==============+ -| artifact | yes | string | — — — — | +| html_artifact | yes | string | — — — — | ++----------------+----------+----------+--------------+ + +Name of the typing artifact. + + +junit_artifact +============== + ++----------------+----------+----------+--------------+ +| Parameter Name | Required | Type | Default | ++================+==========+==========+==============+ +| junit_artifact | optional | string | ``""`` | +----------------+----------+----------+--------------+ Name of the typing artifact.