name: Verification of Job Templates on: push: workflow_dispatch: jobs: ConfigParams: uses: pyTooling/Actions/.github/workflows/ExtractConfiguration.yml@r2 with: package_name: pyDummy UnitTestingParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@r2 with: name: pyDummy python_version_list: "3.9 3.10 3.11 3.12 3.13 pypy-3.9 pypy-3.10" # disable_list: "windows:pypy-3.10" PlatformTestingParams: uses: pyTooling/Actions/.github/workflows/Parameters.yml@r2 with: name: Platform python_version_list: "" system_list: "ubuntu windows macos mingw32 mingw64 clang64 ucrt64" UnitTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r2 needs: - UnitTestingParams with: jobs: ${{ needs.UnitTestingParams.outputs.python_jobs }} unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} unittest_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} # coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} # coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} # coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} # coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} PlatformTesting: uses: pyTooling/Actions/.github/workflows/UnitTesting.yml@r2 needs: - PlatformTestingParams with: jobs: ${{ needs.PlatformTestingParams.outputs.python_jobs }} # tests_directory: "" unittest_directory: platform unittest_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }} unittest_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }} coverage_sqlite_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_xml_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_xml }} coverage_json_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_json }} coverage_html_artifact: ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }} # Coverage: # uses: pyTooling/Actions/.github/workflows/CoverageCollection.yml@r2 # needs: # - UnitTestingParams # with: # python_version: ${{ needs.UnitTestingParams.outputs.python_version }} # artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} # secrets: # codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} StaticTypeCheck: uses: pyTooling/Actions/.github/workflows/StaticTypeCheck.yml@r2 needs: - ConfigParams - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} commands: | ${{ needs.ConfigParams.outputs.mypy_prepare_command }} mypy --html-report htmlmypy -p ${{ needs.ConfigParams.outputs.package_fullname }} html_report: 'htmlmypy' html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} DocCoverage: uses: pyTooling/Actions/.github/workflows/CheckDocumentation.yml@r1 needs: - ConfigParams - UnitTestingParams with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} directory: ${{ needs.ConfigParams.outputs.package_directors }} # fail_below: 70 Package: uses: pyTooling/Actions/.github/workflows/Package.yml@r2 needs: - UnitTestingParams - UnitTesting # - Coverage - PlatformTesting with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} PublishCoverageResults: uses: pyTooling/Actions/.github/workflows/PublishCoverageResults.yml@r2 needs: - UnitTestingParams - UnitTesting - PlatformTesting # - Coverage with: coverage_sqlite_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} coverage_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} coverage_html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} secrets: codacy_token: ${{ secrets.CODACY_PROJECT_TOKEN }} PublishTestResults: uses: pyTooling/Actions/.github/workflows/PublishTestResults.yml@r2 needs: - UnitTesting - PlatformTesting with: additional_merge_args: '-d "--pytest=rewrite-dunder-init;reduce-depth:pytest.tests.unit;reduce-depth:pytest.tests.platform"' # VerifyDocs: # uses: pyTooling/Actions/.github/workflows/VerifyDocs.yml@r2 # needs: # - UnitTestingParams # with: # python_version: ${{ needs.UnitTestingParams.outputs.python_version }} Documentation: uses: pyTooling/Actions/.github/workflows/SphinxDocumentation.yml@r2 needs: - ConfigParams - UnitTestingParams - PublishTestResults - PublishCoverageResults # - VerifyDocs with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} coverage_report_json_directory: ${{ needs.ConfigParams.outputs.coverage_report_json_directory }} # unittest_xml_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} # coverage_json_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} html_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} IntermediateCleanUp: uses: pyTooling/Actions/.github/workflows/IntermediateCleanUp.yml@r1 needs: - UnitTestingParams - PublishCoverageResults - PublishTestResults - Documentation with: sqlite_coverage_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}- xml_unittest_artifacts_prefix: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}- PDFDocumentation: uses: pyTooling/Actions/.github/workflows/LaTeXDocumentation.yml@r2 needs: - UnitTestingParams - Documentation with: document: actions latex_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_latex }} pdf_artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_pdf }} PublishToGitHubPages: uses: pyTooling/Actions/.github/workflows/PublishToGitHubPages.yml@r2 needs: - UnitTestingParams - Documentation # - PDFDocumentation # - Coverage - PublishCoverageResults - StaticTypeCheck with: doc: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} coverage: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} typing: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} ReleasePage: uses: pyTooling/Actions/.github/workflows/Release.yml@r2 if: startsWith(github.ref, 'refs/tags') needs: - UnitTesting - PlatformTesting # - Coverage # - StaticTypeCheck - Package - PublishToGitHubPages PublishOnPyPI: uses: pyTooling/Actions/.github/workflows/PublishOnPyPI.yml@r2 if: startsWith(github.ref, 'refs/tags') needs: - UnitTestingParams - ReleasePage # - Package with: python_version: ${{ needs.UnitTestingParams.outputs.python_version }} requirements: -r dist/requirements.txt artifact: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} ArtifactCleanUp: uses: pyTooling/Actions/.github/workflows/ArtifactCleanUp.yml@r2 needs: - UnitTestingParams - PlatformTestingParams - UnitTesting # - Coverage - StaticTypeCheck - PlatformTesting - Documentation # - PDFDocumentation - PublishTestResults - PublishCoverageResults - PublishToGitHubPages - IntermediateCleanUp with: package: ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).package_all }} remaining: | ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }}-* ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_xml }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).unittesting_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_sqlite }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_xml }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_json }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).codecoverage_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).statictyping_html }} ${{ fromJson(needs.UnitTestingParams.outputs.artifact_names).documentation_html }} ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_xml }}-* ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).unittesting_html }}-* ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_sqlite }}-* ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_xml }}-* ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_json }}-* ${{ fromJson(needs.PlatformTestingParams.outputs.artifact_names).codecoverage_html }}-*